请求:url、方法、数据
响应:响应数据、状态码
时间、人员、接口复杂度
设计测试用例
搭建自动化测试环境
如python、pycharm
报告、参数化、用例执行框架
unittest、pytest
- 请求
1)请求url:
2)请求方法:POST/GET
3)请求参数:Headers = {. }
4)请求报文:Body- 响应
1)响应状态码:
2)响应数据:
模板:
id、模块、接口名称、请求url、用例名称、请求方法、请求参数类型、请求参数、预期结果、实际结果、备注
注意:单接口用例设计的颗粒度较小(以测试数据为颗粒度)
自动化测试目录结构
1)登录 login.py
2)获取登录列表
…
1)tese_login.py
…
报告.html
1)login.json
…
1.login.py
# 实现登录接口对象封装
# 导包 requests
import requests
# 新建类 登录接口对象
class ApiLogin(object){
# 新建方法 登录方法
def api_login_post(self,url,mobile,code):
# headers定义
headers = {"Content-Type":"application/json"}
# data定义
data = {"mobile": , "code":}
# 调用post并返回响应对象
return requests.post(url,headers=headers,json=data)
}
url、mobile、code需要从data数据文件读取,做参数化使用,这里使用动态传参
2.test_login.py
// 1.导包 unittest 、ApiLogin
import unittest
form ApiLogin import
// 2. 新建测试类 继承unittest.TestCase
class TestLogin(unittest.TestCase):
def test_login(self):
// 暂时保存数据
url =
mobile =
code =
// 调用登录方法
obj = ApiLogin().api_post_login(url,mobile,code)
// 测试使用
print(‘查看测试结果’,obj.json())
// 断言 响应信息 、响应状态码
self.assertEquals("OK",obj.json()['message'])
// 响应状态码
self.assertEquals(201,obj.status_code)
// 3. 新建测试方法 test_login()
1)参数化数据准备 url,mobile,code
2)实例化 ApiLogin()类并调用登录方法
3)断言 响应信息 、响应状态码
解决数据存储问题
在data
文件夹中创建一个login.json
的文件
步骤:
data文件夹
tools文件夹
# 导包
# 新建读取工具类
1.使用初始化方法,获取要读取的文件名称
1)self.filepath = '.../data/'+filename
2. 读取文件方法
1)打开json文件获取文件流
2)调用load方法加载文件流
3)返回结果
parameterized参数化组件
- pip install parameterized
- @parameterized.expand(参数)
1). 单个参数:列表格式 [值1,值2]
2). 多个参数:列表嵌套元组[(参数1),(参数2)]
// 导包
import unittest
from parameterized import parameterized
// 新建测试类
class TestPara(unittest.TestCase):
// 新建测试方法