前言:请自行安装好yaml/allure/jre,并且配置好环境变量
HTMLTestRunner.py已修改,支持python3.9。请把它放在你的python\Lib目录下
HTMLTestRunner.py下载
1.项目文件结构目录
※文件可不用的原因是新手可以先尝试写简单的测试用例,包括数据之类的都可以直接写在case里,但是测试用例如果不用固件封装的话维护性较低,后期再慢慢改进吧。
2.测试用例的固定要求
class TestItem(): #测试类可以是这样
class Test_Item(): #也可以是这样
def test_login(self, *args): #测试用例长这样
'''用例内容'''
3.pytest测试用例案例
class TestItem:
'''↑↑↑↑↑↑↑↑↑这是个测试类'''
@staticmethod
def setup_class(self): #前置,不明白自己去百度
print('用例开始执行')
@staticmethod
def teardown_class(self): #后置,同上
print('用例执行结束')
def test_1(self): #测试用例1
print('nice啊兄die')
def test_2(self): #测试用例2
x = 1
y = 9
assert x == y
执行结果,用例1通过并且打印了内容;用例2未通过,因为1≠9。
4.Yaml的作用?yaml如何调用?
s:
username: sjx001
password: 1234567
j:
username: sjx002
password: 1234567
x:
username: sjx002
password: 1234567
数据2:
QQ:
-
username: sjx001
password: 1234567
-
username: sjx002
password: 1234567
weixin:
-
username: sjx003
password: 1234567
-
username: sjx004
password: 1234567
weibo:
-
username: sjx005
password: 1234567
-
username: sjx006
password: 1234567
这个数据让python读取出来的样子是嵌套的字典,我们可以通过键去调用。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
{‘s’: {‘username’: ‘sjx001’, ‘password’: 1234567}, ‘j’: {‘username’: ‘sjx002’, ‘password’: 1234567}, ‘x’: {‘username’: ‘sjx002’, ‘password’: 1234567}}
演示一下
1.如果想使用所有的账号信息,数据1演示。
直接使用ddt.file_data,注意使用DDT的话测试类需要继承unittest。
三组数据分别被打印了
2.如果只想登陆某组数据,数据2演示。
使用yaml中的键来指定。
结果是只打印了weibo下面的账号信息,OK
5.HTMLTestRunner生成测试报告
源码及注释都给你打出来,自己去理解。
import time
import os
import unittest
from HTMLTestRunner import HTMLTestRunner
def getAllCases():
'''获取test_dir目录下所有以test_开头的测试用例并放入容器Testsuite中'''
test_dir = r'D:\Test\testcase'
Testsuite = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
return Testsuite
def Runmain():
'''在指定的路径下生成html格式的测试报告'''
TestReport_dir = 'D:\Test\HTMLTestRunnerReport'
fp = open(os.path.join(TestReport_dir, time.strftime("%Y-%m-%d %H时%M分%S秒")+'测试报告.html'), 'wb')
runner = HTMLTestRunner(stream=fp, title='sjx的自动化测试报告', description='这是个案例')
runner.run(getAllCases())
if __name__ == '__main__':
Runmain()
生成的测试报告长这样!!!
6.allure生成测试报告
在配置好java环境且安装好allure的前提下,请你完成你的测试用例,并且规范点放在自己的测试项目里!
然后在终端输入pytest --alluredir +生成报告的目录。
pytest会开始执行你的测试用例,并且通过allure生成测试报告。
然后输入allure serve +生成报告的目录 打开测试报告,完事
两种测试报告根据自己的口味进行选择。达到这一步以后,可以根据实际需求去结合jenkins更进一步完善自动化过程。如果想在linux系统下执行脚本的话配置也是一样的,前提是你能够配置好linux环境。
以上就简单得展示了一遍测试报告的生成。