pip install parameterized
登录为样例
import json, unittest, requests, parameterized
# 定义一个登录的函数
def login(mobile, password):
# 请求的URL
url = 'http://localhost:8080/api/sys/login'
# 请求的数据
data = {
'username': username,
'password': password
}
headers = {
"Content-Type": "application/json"
}
# json.dumps(data) 将字典转为json格式
data_json = json.dumps(data)
# 发起请求,headers是请求头的数据,data是请求所携带的参数。并把返回的数据转为json
res = requests.post(url=url, data=data_json, headers=headers).json()
return res
# 为当前接口写测试用例
class CeShi(unittest.TestCase):
# parameterized方法 用装饰器 一次执行多个测试用例
@parameterized.parameterized.expand(
[("13800000001", "123456", 10000), ("13811111111", "123456", 20001), ("13800000001", "1234567", 20001)]
)
def test_01(self, username, password, result):
# 获取requests请求后的数据
res = login(username, password)
# 断言 请求后返回的状态码与测试用例里的是否一致 不一致就断言失败
self.assertEqual(res['code'], result)
html格式的就是HTMLTestRunner了,HTMLTestRunner
是 Python 标准库的 unittest 框架的一个扩展,它可以生成一个直观清晰的 HTML 测试报告。使用的前提就是要下载 HTMLTestRunner.py,下载完后放在python的安装目录下的scripts目录下即可。 (网上有很多可以下载的,美观)
import unittest
from request_unittest.HTMLTestRunner import HTMLTestRunner
from request_unittest.test_login import CeShi
# 创建测试套件
suite = unittest.TestSuite()
# 加载测试用例
suite.addTest(unittest.makeSuite(CeShi))
with open("test_login.html", "wb")as f:
# 创建Runner对象
runner = HTMLTestRunner(stream=f, title="登录测试报告", description="Chrome 浏览器")
# 执行测试条件并生成测试报告
runner.run(suite)
执行这个文件就生成报告了