Pytest统计用例的个数并将测试结果群通知
背景
完成了公司的接口自动化测试,现在需要将测试结果,包括总的用例数、成功用例数、失败用例数等通知到公司的teams群,并且可以查看allure报告
代码
需要在项目根目录下的conftest.py文件中编写,运行时会自动统计用例,代码如下

def pytest_terminal_summary(terminalreporter, exitstatus, config):
total = terminalreporter._numcollected #这是所有的用例个数
passed = len(terminalreporter.stats.get('passed', [])) #这是运行成功的用例个数
failed = len(terminalreporter.stats.get('failed', [])) #这里运行失败的用例个数
skipped = len(terminalreporter.stats.get('skipped', [])) #这里是skip的运行个数
duration = time.time() - terminalreporter._sessionstarttime #这里是运行的时间
duration_time = round(duration, 2)
url = "xxxx" #这里是触发teams机器人通知的url
msg = f"Open Api Test Result: Total Cases:{total}; Passed:{passed}; Failed:{failed}; Skipped:{skipped}; Allure Report: http://xxxx/"
body = {
"groupId": "xxx", #这里是要通知的群的groupId
"msg": msg #这里是要通知的内容
}
requests.Session().post(url, json=body, verify=False) #调接口触发机器人通知
teams群通知如下

在服务器上设置每天定时执行
首先需要在服务器上安装代码运行的环境,使代码能在服务器上运行
然后安装git,使代码能够从git上拉下来
最后需要安装allure,需要能在服务器上打开allure报告
编写shell脚本
#在运行之前先将上一次的allure进程杀掉,否则端口会被占用,因为下面的端口是写死的
kill -9 `ps aux | grep allur | grep -v grep | awk '{print $2}'`
#进入项目文件夹
cd /home/ec2-user/openapi/chimeapi
#拉取最新的代码
git pull
#pytest执行用例,配置失败重试5次,并生成allure报告
pytest -s --reruns 5 --alluredir ./report --clean-alluredir
#启动allure服务,展示报告
allure serve ./report -h 这里是服务器的ip -p 1234
输入命令crontab -e 设置定时执行上面编写的脚本,如下图,设置的为每天8点10分开始执行

设置好之后,就会每天定时执行脚本运行用例了~
浙公网安备 33010602011771号