多线程执行main_extend.run_cases,发现连接了同一个浏览器
AweHenry opened this issue · comments
HenShallRy commented
虫师 commented
seldom WebUI 自动化测试运行过程中,共用一个浏览器驱动对象:Seldom.driver
如果你不考虑测试报告的合并。可以使用seldom
命令,seldom==2.10.7
import subprocess
import threading
def running1():
subprocess.check_call([
"seldom", # seldom命令
"--path", "./test_dir", # 运行测试用目录
"--browser", "chrome", # 浏览器
"--report", "result1.html" # 测试报告(可以定义xml报告,容易合并)
], cwd="D:/github/seldom/demo" # 进入执行用例的目录
)
def running2():
subprocess.check_call([
"seldom",
"--path", "./test_dir",
"--browser", "firefox",
"--report", "result2.html"
], cwd="D:/github/seldom/demo"
)
def run():
threads = []
t1 = threading.Thread(target=running1, args=())
threads.append(t1)
t2 = threading.Thread(target=running2, args=())
threads.append(t2)
for t in threads:
t.start()
for t in threads:
t.join()
if __name__ == '__main__':
run()
seldom 命令更多用法: https://seldomqa.github.io/getting-started/seldom_cli.html
当然,这种方式之适合按照测试目录 test_dir
创建线程, 每个目录下面的用例数量不一样,线程分配不均。 你可以参考文档上面收集用例
的方法,把用例平均分配到 json 文件,每个线程执行一个json 文件中的用例。
HenShallRy commented
@yongchin0821 我自己将结果写入了数据库,最后合并的报告页面也自己写了。
りりこ commented
@yongchin0821 我自己将结果写入了数据库,最后合并的报告页面也自己写了。
好的了解了