selenium远程测试-跨浏览器总结

总而言之,就是先连接服务器端计算机(有selenium-server-standalone.jar文件的计算机,将被客户端计算机操纵)和客户端计算机,再运行客户端计算机的测试代码,操作服务器端计算机完成测试动作。

连接依据:IP地址/主机名、端口号、浏览器信息(浏览器名称、版本号、操作系统)

说明:< >, 该符号内的内容是文字描述,不作为输入文本

步骤:

1.在远程计算机上,下载selenium-server-standalone.jar文件,https://selenium.dev/downloads/,需要下载最新版,老的版本可能会与新的浏览器版本不兼容,导致测试时找不到浏览器。

2.在远程计算机上,启动命令行,cd到jar文件所在文件夹, 输入命令:java -jar selenium-sever-standalone-3.141.59.jar

需要先安装JAVA,我安装的最新的,不清楚旧版本JAVA能否奏效。这条命令将启动远程测试服务器端,并且实时反馈测试过程具体情况。

Selenium默认支持火狐浏览器,对于IE和Chrome,需要添加默认的驱动搜索路径,例如:在上条命令中添加

 -Dwebdriver.chrome.driver=<chromedriver.exe路径字符串>,对于IE浏览器,只需把等号左边chrome改成ie即可。

(不同浏览器、不同的浏览器版本,都需要下载不同的驱动),可以使用多条-Dwebdriver命令来添加多个驱动的默认搜索路径;

默认使用4444作为端口号,也可以用-port命令自定义。

3.在客户端计算机上,编写相关测试代码,不同的是使用driver = webdriver.Remote('http://<服务器端计算机IP>:<启动服务器端时用的端口号>/wd/hub', desired_caps), 来替代driver = webdriver.Chrome( ), desired_caps是一个字典,用来配置浏览器信息,如desired_caps['platform'] = ‘WINDOWS’, desired_caps['browserName'] = ‘chrome'等。

4.运行代码,测试过程将在服务器端进行,测试结果作为代码运行结果返回。

5.分布式远程测试

与普通的远程测试区别在于:

    1)服务器端启动时添加-role hub命令:使用 java -jar selenium-sever-standalone-3.141.59.jar -role hub

    2)可在服务器端计算机上输入http://localhost:<启动时设置的端口号,不设置时默认为4444>/grid/console,查看控制台信息,控制台将显示节点的配置信息

    3)在服务器端,启动新的命令行,添加IE/firefox/chrome等浏览器节点,

            ①方法一:新建命令行,cd到jar文件下,对于chrome, 键入命令: java -Dwebdriver.chrome.driver=<chromedriver.exe路径字符串> -jar selenium-server-standalone-3.141.59.jar -role webdriver -browser "browserName=chrome, version=78, maxinstance=2, platform=WINDOWS" -hubHost localhost -port 7777

           ②方法二:使用json格式的配置文件

注意,在客户端使用这里的端口号7777,而不是启动服务器端设置的4444,否则将找不到浏览器。

6.在云端测试

用云端代替这里的服务器端计算机,即可实现在尽可能多的操作系统和浏览器上进行测试。

这里使用https://saucelabs.com/,注册账号,复制Access Key。

修改代码:desired_caps['browserName'] ='phantomjs', driver = webdriver.Remote('http://' + str(<用户名>) + ':' + str(<Access Key>) + '@ondemand.saucelabs.com:80/wd/hub', desired_caps),其他不变。

运行测试代码后, 在saucelabs网站中,选择Dashboard - AUTOMATED TESTS可查看测试过程视频及相关细节

 

 

 

发布了10 篇原创文章 · 获赞 7 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章