1.自动化测试流程
- 需求分析。需求文档,接口文档。抓包接口
- 计划。进度?是否自动化?优先级?
- 测试用例(是从手工测试提取出来的)
- 评审
- 执行,(写代码)
- 报告
接到一个项目,在需求分析的阶段,我们需要熟悉的部分包含:
- 需求文档,功能展示以及交互
- 接口文档,后端数据是怎么传输
- 数据库账号,数据库地址,结构帮大家熟悉整个项目的轮廓,表字段
- 测试环境/环境怎么搭建
- 原型图
测试计划一般由项目经理制定,主要是时间、技术、进度、优先级的管控,可以确认哪些功能需要引入自动化测试(自动化测试技术python/java)。
测试计划还会涉及到可行性分析,风险分析。
测试用例的编写一般是在excel文档中实现的。
通常来说,任何的一个项目或者是新功能,会先进行手工测试,也是要进行全量的用例编写。
自动化测试主要应用场景:
- 冒烟测试:确认主流程是否能正常运行。
- 回归测试:验证问题并检查是否引起其他问题的测试
- 持续集成:一天可能要做好几次的测试,反复测试
2.接口需求分析
接口文档形式:
- 纸质文档(电子)
- open api,以前叫做swagger,在网站上进行访问
- 什么都没有,全凭一张嘴(自己抓包)
通过抓包,postman调试工具 ,我们知道了怎么设计用例,预期结果。
3.用例设计
excel编写,以前程贷注册接口为例。
注意:json数据一定要符合规范,不然转成字典会报错。(引号必须是双引号)
预期结果根据postman运行后得出。
4.编写自动化测试用例函数
如果领导给你一个自动化测试的计划,
先不要着急做到十全十美,第一步是验证你的自动化测试程序是否能正常运行。
先把功能实现。
写一个单独的自动化测试用例函数。test_开头的测试用例函数,需要有请求发送,得到响应结果,断言。然后生成测试报告。
test_register.py内容如下:
import unittest
import requests
class TestRegister(unittest.TestCase):
def test_register_1(self):
# 1.准备测试数据
url = 'http://api.lemonban.com:8766/futureloan/member/register'
method = 'post'
headers = {"X-Lemonban-Media-Type": "lemonban.v2"}
json_data = {"mobile_phone": "", "pwd": "12345678"}
expected = {
"code": 1,
"msg": "手机号为空",
"data": None,
"copyright": "Copyright 柠檬班 © 2017-2020 湖南省零檬信息技术有限公司 All Rights Reserved"
}
# 2.发送接口请求,得到实际结果
resp = requests.request(method=method, url=url, headers=headers, json=json_data)
actual = resp.json()
# 3.预期结果个实际结果的断言
self.assertEqual(expected, actual