pytest 助手
这个助手有什么用
pytest 助手 让大家通过 图形界面来
-
挑选要执行哪些用例
-
实时查看执行过程,支持远程执行查看
-
产生漂亮的测试报告
该软件永久开源免费。 点击这里访问它的 Github 网址, 如果满意请给它加一颗星
安装
安装很简单,需要 Python 解释器版本 3.8 以上,使用如下命令安装
可以使用国内源,比如
运行pytest助手
图形界面模式
要运行 pytest 助手, 只需要进入到测试自动化 项目根目录
然后执行
注意,上面的 pytest_assist
中间的是 下划线 ,而不是中划线
如果用的是Windows系统,启动时自动打开客户端窗口。
这种界面其实就是浏览器窗口,只不过隐藏了地址栏工具栏。
你也可以浏览器直接打开,比如 http://127.0.0.1:48530
因为服务缺省的端口是 48530
万一端口冲突了,可以这样命令行指定 端口
# 指定 IP , HTTP端口
python -m pytest_assist --host 0.0.0.0 --port 10000
# 指定 websocket端口
python -m pytest_assist --wsport 30000
# 同时指定 HTTP端口 websocket端口
python -m pytest_assist --port 10000 --wsport 30000
如果你在外企工作,希望是英文界面,使用英文版操作系统即可。
或者使用如下命令启动
界面左上角会显示 websocket 连接状态
只产生报告
如果你只想让 pytest 助手 帮你产生测试报告,不需要启动图形界面,可以这样运行测试
挑选用例执行
点击界面 测试参数设置
按钮,打开挑选用例的界面
可以根据3种方式选择:
-
选择要执行的 用例文件/用例类/用例函数
-
根据 用例 nodeid 包含的关键字 选择
-
根据 用例标签 选择
具体操作,详见视频讲解。
缺省是保存测试记录的,这样测试完可以根据记录文件产生报告。
测试名作为测试记录的名称的, 名称里面的字符,必须是 字母 数字 - _
这几种符号,不能有空格
挑选好用例后,点击执行测试按钮,就发起测试了。
保存 测试参数
有些测试,挑选用例的参数比较多,比如 根据nodeid关键字, 选择目标文件,类,函数 这些规则的混合选择
如果每次执行都操作一遍很麻烦,这时可以点击界面 保存测试参数
的按钮,保存起来。
下次只需双击保存的记录,即可加载到界面上
查看进度和统计
发起测试后, 下方会 显示测试的名称/开始结束时间/工作目录
并且会显示执行进度,包括总计要执行多少测试用例,已经执行了多少个测试用例,剩余多少,并且有进度条显示进度
再下方是 显示用例执行的 各种测试结果数量:通过/不通过/错误(主要是初始化清除过程产生的错误)/预期不通过 等
数量为0的种类不显示
再下方是测试详情,就是具体各个用例的执行细节, 包括:用例 nodeid 名, setup/call/teardown 阶段 各自花费的时间
另外 显示 这3 阶段 :
- report记录信息
由用例代码调用 pytest助手的库产生,后面会详细讲解如何使用
- print 打印信息
如果代码调用了print打印信息,灰色背景会展示这些信息
- 捕获的错误信息
如果代码执行过程产生了错误,比如抛出异常 , assert 检查点不通过,淡红色背景会展示这些信息
测试结果详情可以 整体折叠/打开,点击单个用例nodeid栏可以单独 打开/折叠
另外可以勾选是否显示 通过的用例/不通过的用例/有初始化清除错误的用例, 方便重点查看
测试过程支持多个浏览器查看,特别适合长时间的自动化测试时,多个测试人员在各自的电脑上查看。
中止测试
有时候,一个比较长的测试,我们中途发现问题需要停止。
可以点击右上角的 中止测试
按钮。
这种中止测试的方式主要对远程执行比较有帮助。
如果你的测试用例代码写的有问题,导致用例执行长时间不退出。 这个时候就需要强制终止。 点击界面右上角的 强制停止测试
按钮即可 。
这个操作本质上是让 助手后端服务重启。
如果你想直接停止助手的后端服务,点击右上角 关闭后台
按钮即可。
如果是本地执行的测试,当然也可以 直接在命令行窗口按 ctrl c
键停止后端服务程序。
保存的测试记录
如果你想查看以前保存的测试结果,在左边 结果记录
这一栏选择对应的记录, 双击即可打开 。
和实时查看结果一样,以前的记录结果详情 也可以 整体折叠/打开,点击单个用例nodeid栏可以单独 打开/折叠。
另外也可以勾选是否显示 通过的用例/不通过的用例/有初始化清除错误的用例, 方便重点查看
如果你想删除一个记录,只需要按住shift键,双击该记录,就可以删除。
如果想删除全部历史记录, 点击右边的 全部删除
按钮即可。
导出测试报告
测完的结果想作为报告发给其他人,只需要在查看结果记录界面的右上角点击 导出报告
按钮。
然后选择本地保存的地址 即可下载 测试报告。
下载的测试报告是一个zip文件,解压后,里面包含的测试报告是一个html文件,双击即可在浏览器中打开 。
report 信息
我们想 把测试运行中的一些信息 写入到记录报告中,该怎么做呢?
调用python的 print函数输出的内容是可以出现在报告中的 但是我们不推荐这种方式 。
print函数更适合输出一些 临时的 调试 要展现的信息。等用例开发完成后,这些print函数代码语句最好注释掉。
pytest助手 推荐使用的是pytest助手库 里面的报告函数。
常用的有
log_str
这是基本的报告信息函数,可以指定颜色和粗细
其它用法和print函数基本差不多
比如
from pytest_assist import log_str
username = 'byhy'
def test_C009001():
log_str(1,'打开登录界面进行登录,使用账号', username,
color='green', weight='bold')
sleep(1) # 模拟登录操作和登录后的验证耗时
log_str(2, '登录成功', '需要更多的测试结果',
color='green', weight='bold')
log_str('有些注意点,人工核对结果时请注意', color='chocolate')
log_str('注意点1')
log_str('注意点2', end='')
log_str('|2的后续信息')
其它快捷函数
pytest 助手为常用的report功能做了一些快捷函数
比如:
- 记录测试步骤
可以使用 log_step
from pytest_assist import log_str, log_step
def test_C009001():
log_step(1, '打开登录界面进行登录,使用账号byhy')
log_str('其它的一些信息')
sleep(1) # 模拟登录操作和登录后的验证耗时
log_step(2, '登录成功', '需要更多的测试结果')
log_str('其它的一些信息')
- 颜色输出快捷函数
比如 log_str_red
, log_str_green
, log_str_blue
from pytest_assist import log_step, log_str_red, log_str_blue
def test_C009001():
log_step(1, '打开登录界面进行登录,使用账号byhy')
log_str_red('其它的一些信息')
sleep(1) # 模拟登录操作和登录后的验证耗时
log_step(2, '登录成功', '需要更多的测试结果')
log_str_blue('其它的一些信息')
如果这些颜色不够,可以自己封装,
比如在自己的库中这样定义
def log_str_darkred(*args, sep=' ', end='\n', weight=None):
log_str(*args, sep=sep, end=end,
color='darkred', weight=weight)
pytest助手的记录细节中,会依次展示
-
report信息输出内容,白色背景
-
终端屏幕输出内容,灰色背景
-
pytest错误细节,淡红色背景
截屏
做web浏览器自动化时, 往往希望能截屏浏览器界面,帮助定位。
那么这些截屏图片怎么添加到report里面呢?
使用 函数 selenium_screenshot
比如
from pytest_assist import selenium_screenshot, log_str
def test_C00888():
from selenium import webdriver
wd = webdriver.Chrome()
wd.get('https://www.byhy.net')
log_str('截屏前\n\n')
selenium_screenshot(wd)
log_str('\n\n截屏后')
这样 图片信息就可以很好的融入测试报告步骤中