lyn*_*hey 3 python selenium multithreading pytest python-3.x
我正在使用pytest来运行测试,并测试我的Web应用程序。我的测试文件看起来像
def test_logins():
# do stuff
def test_signups():
# do stuff
def testing_posting():
# do stuff
Run Code Online (Sandbox Code Playgroud)
它们大约有20个,其中许多具有恒定时间运行或依赖于外部HTTP请求的元素,因此,如果我可以让pytest启动20个不同的mutliprocessing,这似乎会导致测试速度大大提高。流程(每个测试一个)来运行每个测试功能。这可能/合理/建议吗?
我调查了xdist,但将测试进行了拆分,以便根据我的计算机上的内核数量运行这些测试不是我想要的。
同样在相关的情况下,大部分测试是使用python的请求库完成的(尽管最终它们将移至selenium)
我仍然建议使用pytest-xdist。而且,正如您已经提到的那样,由于您的测试主要是通过网络IO进行的,因此可以使用比内核更多的并行进程(例如20个)来启动pytest,这仍然是有益的,因为GIL不会阻止加速从并行化。
因此,您可以像这样运行它:
py.test tests -n<number>
Run Code Online (Sandbox Code Playgroud)
xdist的另一个好处是,您可以轻松地将测试运行轻松扩展到多台计算机。为了在多台机器之间更轻松地扩展,pytest-cloud可以提供很大帮助。
| 归档时间: |
|
| 查看次数: |
1676 次 |
| 最近记录: |