Pytest、Robot Framework和TestNG对比
Pytest
|
Robot Framework
|
TestNG
|
|
语言
|
Python
|
Python
|
Java
|
测试类型
|
单元和功能测试
|
端到端验收测试和验收测试驱动开发(ATDD)
|
单元和功能测试
|
跨平台
|
Windows/Linux/MacOS
|
Windows/Linux/MacOS
|
Windows/Linux/MacOS
|
Selenium
|
pytest-selenium
|
robotframework-selenium2library
|
支持
|
数据驱动
|
支持,使用内部的parametrize
|
支持,可以使用参数文件
|
支持,使用testng.xml或者@DataProvider提供比较复杂的参数
|
测试报告
|
Pytest-html或allure
|
allure-robotframework或者自定义HTML报告
|
TestNG自带的默认报告Use Default Reportters,ReportNG或者ZTestReport
|
插件
|
非常丰富
|
丰富
|
丰富
|
用例失败重试
|
支持
|
通过改写RobotFramework源代码增加–retry选项,实现test级别的失败用例自动再执行。
|
支持
|
用例跳过
|
支持
|
不支持
|
支持
|
用例分类执行
|
支持, 通过pytest.mark标记用例
|
支持,通过tag方式
|
支持,通过group分组方式
|
并发
|
pytest-xdist:分发到不用的cpu或机器上
|
命令行并发
|
通过启动测试的命令行参数-parallel
|
集成
|
支持
|
支持
|
支持
|
优点
|
|
|
|
缺点
|
|
|
|
总结
|
Pytest和TestNG分别为python和java系目前使用最多自动化测试框架,两者的优缺点大同小异,取决于我们使用java语言还是python语言。鉴于目前测试使用语言为java,如果选用selenium工具作为UI自动化工具,建议选择TestNG作为自动化测试框架进行集成。
|