lucialee 2020-01-14
1.需要测试的函数
import requests
def visit(url, headers, data):
res = requests.post(url, json=data, headers=headers)
return res.json()
if __name__ == ‘__main__‘:
url = ‘http://120.78.128.25:8766/futureloan/member/login‘
headers = {"X-Lemonban-Media-Type": "lemonban.v2"}
data = {"mobile_phone": "18111111111", "pwd": "12345678"}
print(visit(url,headers,data))断言方式:assertTrue, 判断条件assertEqual,assertGreater, a > bassertIn, a in bself.assertRegex(), 正则表达式匹配
import unittest
from zijilianxi.unittest.test1111.fun_visit import visit
url = ‘http://120.78.128.25:8766/futureloan/member/login‘
headers = {"X-Lemonban-Media-Type": "lemonban.v2"}
data = {"mobile_phone": "18111111111", "pwd": "12345678"}
class TestLogin(unittest.TestCase):
def test_login(self):
res = visit(url,headers,data)
print(res)
try:
self.assertEqual(res["msg"], "OK1")
except AssertionError as e:
print("断言失败", e)
if __name__ == ‘__main__‘:
unittest.main()收集测试用例: TestLoader, 加载器,加载测试用例放到测试集合(测试套件) TestSuite1, 初始化 testloader2, suite = testloader.discover(文件夹路径, ‘demo_*.py‘) 发现测试用例3, 如果你想运行的用例,放到指定的文件夹当中,# TestRunner,1, 运行用例2, 生成测试报告
import os
import unittest
import time
from zijilianxi.unittest.test1111.HTMLTestRunnerNew import HTMLTestRunner
# 初始化加载器 testloader
testloader = unittest.TestLoader()
# 查找测试用例
dir_path = os.path.dirname(os.path.abspath(__file__))
suit = testloader.discover(dir_path)
# report
report_path = os.path.join(dir_path,"reprot")
if not os.path.exists(report_path):
os.mkdir(report_path)
"""
# 普通文本生成测试报告 TextTestRunner
file_path = os.path.join(report_path,"test_result.txt")
print(file_path)
with open(file_path,"w",encoding="utf-8") as f:
runner = unittest.TextTestRunner(f,verbosity=2)
# 运行测试用例
runner.run(suit)
"""
# 生成 html 测试报告 HTMLTestRunner
ts = time.strftime("%Y_%m_%d %H_%M_%S") # 时分秒之间不能用冒号:
file_name = r"test_result_{}.html".format(ts)
file_path2 = os.path.join(report_path,file_name)
with open(file_path2,"wb") as f:
runner = HTMLTestRunner(f,
title="测试报告",
description="测试结果",
tester="老李")
runner.run(suit)收集测试用例: TestLoader, 加载器,加载测试用例
放到测试集合(测试套件) TestSuite
1, 初始化 testloader
2, suite = testloader.discover(文件夹路径, ‘demo_*.py‘) 发现测试用例
3, 如果你想运行的用例,放到指定的文件夹当中,
# TestRunner,
1, 运行用例
2, 生成测试报告
几种加载测试用例的方式:
1, 用的最多,整个项目一起加载,使用:discover
2, 你想只测试某一个具体的某块,功能,使用 loadTestsFromTestCase 或者 loadTestsFromModule
3, pytest,
HTMLTestRunner, 不是unittest 自带的。需要自己去安装。
1,安装方式不是通过 pip
2, 他是别人写好的一个模块,你可以直接下载下来的 .py
3, 复制到项目目录下,然后倒入。
4, 第二种方式:我们可以放到 python 的公共库当中
import os import unittest #1, 初始化 testloader import time from class_18_report.HTMLTestRunnerNew import HTMLTestRunner from class_18_report.test_cases import test_login, test_register from class_18_report.test_cases.test_login import TestLogin from class_18_report.test_cases.test_rechage import TestRecharge from class_18_report.test_cases.test_register import TestRegister testloader = unittest.TestLoader() # 2, 查找测试用例,加载 dir_path = os.path.dirname(os.path.abspath(__file__)) case_path = os.path.join(dir_path, ‘test_cases‘) # suite = testloader.discover(case_path) # 加载两个模块当中的测试用例,保存到测试套件当中 # suite = testloader.loadTestsFromModule(test_login) # suite2 = testloader.loadTestsFromModule(test_register) # 添加指定的测试类 suite = testloader.loadTestsFromTestCase(TestLogin) suite2 = testloader.loadTestsFromTestCase(TestRecharge) # 讲这两个测试套件合并添加到一个总的测试套件套件 suite_total = unittest.TestSuite() suite_total.addTests(suite) suite_total.addTests(suite2) # suite = testloader.loadTestsFromName() print(suite)