有这样一个情况,在test_user_center.py文件中有两个测试方法,test_login和test_logout,
如果在终端这样指定命令:
pytest -q -s -ra --count=500 test_user_center.py --alluredir=./report/login_and_logout/resource | tee pytest_summary.log,
那么会先执行500遍test_login之后再执行500遍test_logout,test_login 和 test_logout 测试方法并不会以交替顺序执行(即 test_login -> test_logout -> test_login -> test_logout,重复执行 500 次)。
那么如何实现交替执行两个测试方法的预期呢?这里介绍一个使用shell解决的方法:
1、直接执行,在终端中运行:
for i in {1..500}; do pytest -q -s -ra test_user_center.py --alluredir=./report/login_and_logout/resource | tee pytest_summary.log; done | tee pytest_summary.log
2、保存为 Shell 脚本,将代码保存为文件,比如 run_tests.sh:
#!/bin/bash
for i in {1..500}
dopytest -q -s -ra test_user_center.py --alluredir=./report/login_and_logout/resource | tee pytest_summary.log
done | tee pytest_summary.log
然后赋予可执行权限:
chmod +x run_tests.sh
最后运行:
./run_tests.sh
有兴趣的小伙伴们可以尝试一下这种方法,当然还有别的方法,后面慢慢讲。