自动化工具 python 的自动化测试框架中的测试用例分组问题

zhang · 2019年01月07日 · 最后由 zhang 回复于 2019年01月10日 · 2190 次阅读

最近一直在研究 python 的自动化测试框架,在 unittest,nose,pytest 简单学习了之后,虽然各个框架都有自己的插件,但是目前并没有发现可以用于测试用例分组的插件(难道是我没有找到??),在 testng 中测试用例的分组如下:

这样可以在 xml 文件中通过 groups 进行测试用例的分组控制。
在 python 的测试框架的使用中,实际的业务模块化很多,每次执行用例并不需要全部执行完,只需要执行某些模块的用例即可,这样就想到了测试用例的分组。
目前写了一个简单的装饰器可以实现简单的分组工作,但是和框架不兼容,不知道各位大佬在实际项目过程中,python 的测试用例是怎么分组的,希望各位大佬指导一下,感激不尽

共收到 10 条回复 时间 点赞

pytest 里有 mark 的操作,功能差不多

楼上说的对,pytest.mark 了解下,很简单的,个人觉得 pytest 还是更简单好用

快达年 回复

pytest.mark 用过了哦,但是 pytest.mark 只支持一个分组参数的传递,比如 -m key1,我期望的是 -m key1,key2,key3,类似于这种的分组,pytest.mark 有点局限哦

zhang 回复

可以考虑这样:
公共配置里: runGroup = [1,2,3,4]

用例标记:
@pytest.mark.skipif(1 in runGroup,reason='skip')

这样只需要每次在 runGroup 里修改要跑的组列表就可以了

我是搭配 allure 里的 feature 和 story 功能使用的

zhang 回复

-m key 1 or key2 or key3 可以满足你分组

-m 选项可以用表达式指定多个标记各。使用-m "mark1 and mark2"可以同时选中带有这两个标记的所有测试用例。使用-m "mark1 and not mark2"则会选中带有 mark1 的测试用例,而过滤带有 mark2 的测试用例;使用-m "mark1 or mark2"则选中带有 mark1 或者 mark2 的所有测试用例。

John 回复

这个方法倒是不错啊,谢谢大佬了

Jerry li 回复

思路不错,搞一波再说

robot framework 框架的 tag 参数

zhang #10 · 2019年01月10日 Author
wywincl 回复

哦哦 没有用这个框架

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册