中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CentOS 7.x環境下搭建: Headless chrome + Selenium + ChromeDriver實現自動化測試的示例分析

發布時間:2021-11-04 18:41:30 來源:億速云 閱讀:209 作者:柒染 欄目:建站服務器

這期內容當中小編將會給大家帶來有關CentOS 7.x環境下搭建: Headless chrome + Selenium + ChromeDriver實現自動化測試的示例分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

筆者所在公司希望使用Selenium進行高性能的自動化測試。出于穩定性考慮,我們選擇linux環境,而不是Windows環境。同時為了追求測試效率,去UI化,所以選擇了Chrome的Headless方案。 1、環境說明

CentOS版本:

LSB Version: :core-4.1-amd64:core-4.1-noarch 2、最新版本Google-Chrome安裝

CentOS/RedHat 7以上安裝google-chrome可以完全參考https://intoli.com/blog/installing-google-chrome-on-centos/ 2.1 指定上網代理

由于服務器環境本身與外網隔絕,需要指定代理才能正常適用yum工具。我們用的代理服務器為http://10.46.89.29:1087(正常上網可以忽略此過程)。source /etc/skel/.bash_profile

  • 1


執行curl測試:

[root@seersitapp05 ~]# curl -vo /dev/null -H 'x-header-trace:all' 'https://www.suning.com' -k * About to connect() to proxy 10.46.89.29 port 1087 (#0) * Trying 10.46.89.29... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 10.46.89.29 (10.46.89.29) port 1087 (#0) * Establish HTTP proxy tunnel to www.suning.com:443 > CONNECT www.suning.com:443 HTTP/1.1 > Host: www.suning.com:443 > User-Agent: curl/7.29.0 > Proxy-Connection: Keep-Alive > x-header-trace:all > 
< HTTP/1.1 200 Connection established < * Proxy replied OK to CONNECT request * Initializing NSS with certpath: sql:/etc/pki/nssdb 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* skipping SSL peer certificate verification 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 * Server certificate: * subject: CN=*.suning.com,ST=江蘇省,L=南京市,O=蘇寧云商集團股份有限公司,C=CN * start date: 11月 21 15:21:01 2016 GMT * expire date: 11月 21 15:21:01 2019 GMT * common name: *.suning.com * issuer: CN=WoSign OV SSL CA,O=WoSign CA Limited,C=CN > GET / HTTP/1.1 > User-Agent: curl/7.29.0 > Host: www.suning.com > Accept: */* > x-header-trace:all > 
< HTTP/1.1 200 OK < Expires: Tue, 13 Mar 2018 11:35:57 GMT < Date: Tue, 13 Mar 2018 11:30:57 GMT < Server: styx < Content-Type: text/html; charset=UTF-8 < Transfer-Encoding: chunked < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < Last-Modified: Tue, 13 Mar 2018 11:27:06 GMT < Pragma: Pragma < Cache-Control: max-age=300 < X-Cache-Hits: 10 < Via: 1.1 Xcache_Suning_92 < X-Via: 1.1 gangdianxun22:9 (Cdn Cache Server V2.0), 1.1 luoshan90:1 (Cdn Cache Server V2.0), 1.1 lsh282:7 (Cdn Cache Server V2.0) < Connection: keep-alive < strict-transport-security: max-age=300 < 0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0{ [data not shown] 100 179k 0 179k 0 0 28448 0 --:--:-- 0:00:06 --:--:-- 43278 * Connection #0 to host 10.46.89.29 left intact 
		
				1			
				2			
				3			
				4			
				5			
				6			
				7			
				8			
				9			
				10			
				11			
				12			
				13			
				14			
				15			
				16			
				17			
				18			
				19			
				20			
				21			
				22			
				23			
				24			
				25			
				26			
				27			
				28			
				29			
				30			
				31			
				32			
				33			
				34			
				35			
				36			
				37			
				38			
				39			
				40			
				41			
				42			
				43			
				44			
				45			
				46			
				47			
				48			
				49			
				50			
				51			
				52			

2.2 指定yum源

服務器應該指定合適yum源,避免找不到某些依賴的尷尬。.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

  • 1

  • 2


注意,選擇你能正常訪問的repo地址。保存后執行yum clean all操作。

[root@seersitapp05 ~]# yum clean all 已加載插件:fastestmirror
正在清理軟件源: base updates yum-cd
Cleaning up everything
Cleaning up list of fastest mirrors		
				1			
				2			
				3			
				4			
				5			

2.3 安裝google-chrome

根據https://intoli.com/blog/installing-google-chrome-on-centos/.com/install-google-chrome.sh | bash

  • 1


腳本會自動檢測當前版本安裝chrome所缺失的依賴包并下載。如下圖所示。 
最終安裝成功會顯示:

Successfully installed google-chrome-stable, Google Chrome 65.0.3325.146 .

檢查是否還缺乏依賴:

ldd /opt/google/chrome/chrome | grep "not found"
				1			

返回為空,說明CentOS下chrome依賴問題基本解決。

2.4 運行chrome

執行-chrome-stable --no-sandbox --headless --disable-gpu --screenshot     https://www.suning.com/

  • 1


然而,仍然有錯誤:

[0100/000000.311368:ERROR:broker_posix.cc(43)] Invalid node channel message

翻墻求助了好久,發現解決方案,仍然缺乏依賴:

yum install \ ipa-gothic-fonts \ xorg-x11-fonts-100dpi \ xorg-x11-fonts-75dpi \ xorg-x11-utils \ xorg-x11-fonts-cyrillic \ xorg-x11-fonts-Type1 \ xorg-x11-fonts-misc -y
				1			
				2			
				3			
				4			
				5			
				6			
				7			
				8			

CentOS 7.x環境下搭建: Headless chrome + Selenium + ChromeDriver實現自動化測試的示例分析
解決之。再次運行 3、最新版本Chromedriver安裝

為了匹配chrome版本Google Chrome 65.0.3325.146,下載最新版本的chromedriver 2.3.6 linux64位http://npm.taobao.org/mirrors/chromedriver/2.36/chromedriver_linux64.zip# ./chromedriver  Starting ChromeDriver 2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752) on port 9515 Only local connections are allowed.

  • 1

  • 2

  • 3


成功!version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z' System info: host: 'seersitapp05', ip: '10.47.145.25', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-514.26.2.el7.x86_64', java.version: '1.8.0_161' Driver info: driver.version: ChromeDriver at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:192) at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:646) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:255) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:237) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:138) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:178) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:146) at com.suning.seer.node.api.impl.WebAPI.openNewWindowByChrome(WebAPI.java:181)    ... 18 common frames omitted Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:9567/status] to be available after 20009 ms at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:102) at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:187)    ... 27 common frames omitted

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19


注意,其他版本chromedriver可能會缺依賴,缺啥補啥。 4、Java環境安裝

到Oracle官方下載http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html|grep java rpm -qa |grep jdk rpm -qa |grep gcj

  • 1

  • 2

  • 3


如果安裝可以批量卸載所有帶有Java的文件:

rpm -qa | grep java | xargs rpm -e --nodeps		
				1			

在/opt目錄下解壓下載的jdk:

tar -xvf jdk-8u161-linux-x64.tar		
				1			

配置JDK環境,打開/etc/profile,增加JAVA環境變量:

JAVA_HOME=/opt/jdk1.8.0_161 JRE_HOME=/opt/jdk1.8.0_161/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
							

設置完成后,退出vim,然后繼續輸入如下指令,刷新環境變量:

source /etc/profile		
	

嘗試測試JAVA是否安裝成功:

[root@seersitapp05 opt]# java -version java version "1.8.0_161" Java(TM) SE Runtime Environment (build 1.8.0_161-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
[root@seersitapp05 opt]# echo $JAVA_HOME /opt/jdk1.8.0_161
							

5、Tomcat 7搭建

首先我們來配置一下tomcat的環境變量和內存設置,進入tomcat的bin目錄后通過vi命令打開catalina.sh文件,并在其中加入如下配置:

JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m" export TOMCAT_HOME=/opt/tomcat-7.0.42 export CATALINA_HOME=/opt/tomcat-7.0.42 export JRE_HOME=/opt/jdk1.8.0_161/jre		
			

接下來是tomcat的應用端口號,進入tomcat的conf目錄下的server.xml文件,默認是8080端口。7.0.42/bin/startup.sh run

  • 1


啟動控制臺日志可以在中打印:

tail -f -n 1000 tomcat-7.0.42/logs/catalina.out		
					

關閉tomcat:

tomcat-7.0.42/bin/shutdown.sh		
						

另外,還碰到了CentOS關閉后tomcat進程仍然存在的情況,生產環境下,當然不能每次強殺進程吧。
最后,如果大家開啟了代理模式,記得真正服務器生產運行時記得還原配置,關閉代理模式

上述就是小編為大家分享的CentOS 7.x環境下搭建: Headless chrome + Selenium + ChromeDriver實現自動化測試的示例分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

哈巴河县| 绥阳县| 赤水市| 连城县| 莎车县| 政和县| 文登市| 凤冈县| 新竹市| 吉木萨尔县| 涞水县| 清水县| 闽清县| 自贡市| 南川市| 梅州市| 隆昌县| 南阳市| 兰溪市| 奇台县| 福贡县| 女性| 榕江县| 那曲县| 汉阴县| 安顺市| 平安县| 丰县| 江川县| 中牟县| 金溪县| 龙里县| 舞阳县| 镇赉县| 娄烦县| 清丰县| 龙海市| 游戏| 文昌市| 电白县| 宣武区|