总结:测试行业在使用脚本语言开发自动化测试用例时有很多主流框架可供选择。 个人觉得相比 和 ,它们是现阶段最灵活、最全面、最扩展的框架。 您是否在自动化太多用例时遇到过单台机器运行效率不够高的问题?
在测试行业中,它被用作开发自动化测试的脚本语言如果使用Python,可以选择rf、unittest、pytest等主流框架。 个人感觉相比rf和unittest,pytest应该算现阶段最灵活、最全面、最可扩展的框架。
您是否遇到过自动化太多用例并在单台机器上运行效率低下的问题? 接下来,我将简要讨论一下我个人使用并行执行插件 pytest-xdist 和单元测试框架 pytest 的经验。
假设
可以并行运行的测试用例必须满足以下原则:
1. 用例是独立的,用例之间没有依赖关系,用例可以完全独立执行[独立运行]
2. 用例执行出来顺序并且可以按随机顺序成功执行 不影响您的用例 [不影响其他用例]
使用 pytest- xdist插件,用户可以同时运行测试(进程级并发)。 可以使用官方文档https://github.c。om/pytest-dev/pytest-xdist 学习相关使用信息。
pytest -n 参数指定并行执行的 CPU 数量: 试跑机上的杯子数量为8个。 如果想要唤醒所有CPU参与调度,可以直接使用pytest -n 8指定。
pytest -n auto 可以运行。 允许您自动选择需要安排的内容。 CPU的数量也简单方便。 该参数可以在 pytest.ini 文件中设置。
可以比较使用插件前后的执行效率。
使用Before xdist实现并行执行(先注释掉pytest.ini配置文件中的配置):
仅构建20个测试数据和参数化驱动
每种情况都有用的基础知识 此案例的执行时间超过 2 秒。 根据软件、硬件和网络环境的不同,单个用例的执行时间可能会超过 20 秒。
这样,我们只需要20条测试数据。 执行。 当最后两分钟测试用例达到数千个时,测试时间变得不可控,对执行者来说成为一种折磨。
如果用例数量较多,还可以采用分布式+xdist并行执行策略,进一步提高执行效率。 这里我们以独立资源+xdist为例。 采用并行执行策略的执行效率为:
首先,取消注释 pytest.ini 中的设置。
运行相同的测试用例。 xdist 的并行执行时间约为 11 秒。 与使用前相比,有明显的改善。 当然,在实际工作中,也可以采用多资源分配+xidist并行执行策略,进一步提高执行效率。
使用xdist时,还应该注意官方文档中介绍的如何添加文件锁。 在实际工作中,除非使用文件锁定,否则文件都会被锁定。 执行过程中出现资源争用,报错。 请阅读官方文档了解更多详情如何对文件使用文件锁
评论前必须登录!
注册