说明
- 开源地址
- python 3.4+ window7
- excel 管理用例
- 邮件发送测试结果
- 基于 pict 模糊测试
用法
不使用模糊测试
- 首先电脑需要配置 python3.4 的环境
- 点击 lib 目录下的 install.bat 安装依赖文件
- 维护 Report 目录下的 api.xlsx 写入接口测试
- 点击 Runner.py 的 start.bat,或者 python runner.py
- 查看测试报告 Report 目录下的 report.xlsx
使用模糊测试
- 点击 lib 目录下的 install_pict.bat 进行依赖文件安装,会自动关闭 explorer
- 打开 Setting 目录下的 Config.ini 设置为 True
- 模糊测试现在只支持对每个参数的错误,删除的场景,可以自行扩展
- 模糊测试暂不支持检查点
报告
其他
需要登录
- 接口测试需要登录返回的一系列数据,如果 token,session 等等,打开 BaseRunner.py
- 经过 setUpClass 传递给各个接口
def get_session():
req = requests.session()
url = ""
data = {}
req.post(url, data, verify=False)
return req
class ParametrizedTestCase(unittest.TestCase):
def __init__(self, methodName='runTest', param=None):
super(ParametrizedTestCase, self).__init__(methodName)
@classmethod
def setUpClass(cls):
cls.rq = get_session() # 登录后的session
pass
- 在 TestCases 目录中的 Api.py 中接受登录后的 session,并传给 BaseReq.py 中进行修改
class ApiTest(ParametrizedTestCase):
def test_api(self):
ls = read_excel(Element.API_FILE)
# self.req 就是得到了登录后的信息session
Config().config_req(ls,self.req)
@classmethod
def setUpClass(cls):
super(ApiTest, cls).setUpClass()
pict 生成的异常场景
- 在 BaseParams.py 中的__param_format 函数生成异常场景,根据需要自行扩展
def __param_format(self, key):
param_type = {
str: lambda: str(uuid.uuid1()),
list: lambda: [],
dict: lambda: {}
}
return param_type[type(key)]()
检查点说明
- 在启用 pict 的模糊测试后,不会对检查点进行检查
- 现在支持的检查点为:
-
{"id":11,"code":2222}
检查点可以设置为:{"code":22}
-
{"code":1,data:[{"id": "123"}, {}]}
检查点可以设置为:{"id":123}
- 如果检查点不够用可以自行扩展,打开 BaseReq.py 中的__check 函数:
def __check(self, hope, res):
hope = json.loads(hope)
fact = json.loads(res)
for items in fact:
if type(fact[items]) == list:
for item in fact[items]:
for k in hope:
if item.get(k, "") == hope[k]:
return "通过"
if type(fact[items]) == dict:
for k in hope:
if fact[items].get(k, "") == hope[k]:
return "通过"
for k in hope:
if fact.get(k, "") == hope[k]:
return "通过"
return "失败"