selenium 实现多机器部署分布式执行

网友投稿 373 2022-08-28

selenium 实现多机器部署分布式执行

1、selenium-grid

selenium实现多机器分布式执行,依靠的是:selenium-grid(selenium的三大组件之一)。selenium-grid允许用户在不同的机器上并行地针对不同的浏览器运行测试。selenium-grid采用的是Hub和Node模式,允许在分布式测试执行环境中运行测试。

selenium Hub用来管理各个selenium Node的注册信息和状态信息,并且接收远程客户端代码的测试调用请求,并把请求命令发送给符合要求的selenium Node执行。

优点:

可以减少测试的执行时间;支持针对多个运行环境的运行—不同系统的兼容性;支持所有场景拥有相同浏览器、类型、版本的测试—不同浏览器的兼容性。

2、环境搭建

2.1 运行环境的准备

***所有的Hub和Node的环境均按⤵️要求配置

下载selenium-server:​​--version)下载浏览器驱动,chromedriver:​​selenium-grid搭建

准备2+台机器选择其中一台机器作为Hub。在该机器上启动一个Hub和一个Node,打开两个终端分别输入:

java -jar selenium-server-standalone-3.141.59.jar -role hub #端口默认4444

java -jar selenium-server-standalone-3.141.59.jar -role node -port 5555

# 扩展

如果需要多个节点,改变端口增加即可。

# 观察node节点的信息

可以在这台计算机上访问 ​​-jar selenium-server-standalone-3.141.59.jar -role node -port 8888 -hub # coding = utf-8 2 3 from threading import Thread 4 from time import sleep, ctime 5 from selenium import webdriver 6 7 8 def test_sample(host, browser): 9 """测试用例"""10 print('start:%s' % ctime())11 print(host, browser)12 dc = {'browserName': browser}13 driver = webdriver.Remote(command_executor=host, desired_capabilities=dc)14 driver.get(' driver.find_element_by_id('kw').send_keys(browser)16 driver.find_element_by_id('su').click()17 sleep(5)18 driver.close()19 20 21 if __name__ == '__main__':22 lists = {''chrome1',23 ''chrome2',24 ''chrome',25 ''chrome'26 }27 threads = []28 files = range(len(lists))29 30 # 创建线程31 for host, browser in lists.items():32 t = Thread(target=test_sample, args=(host, browser))33 threads.append(t)34 35 # 启动线程36 for i in files:37 threads[i].start()38 for i in files:39 threads[i].join()40 print('end:%s'

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:1月9日晚,韩国超人气女子组合EVERGLOW所属的经纪公司乐华娱乐,突然对外发布公告称,中国籍成员王怡人因为学业问题,即将回到中国与家人团聚,而EVERGLOW将会以5人组进行活动,希望能够得到粉丝
下一篇:c++入门笔记(一)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~