作過自動化的人,確定對selenium web環境的搭建很是熟悉了,特別是selenium在java中的使用。html
先搭建好安裝好JDK,配置好java開發環境(這個若是仍是不知怎麼操做的話但是要打PP了)。而後從官網下載對應selenium的jar包,加載到項目裏;或者是使用maven,修改pom.xml文件直接加載selenium的依賴包便可:java
1 <dependency> 2 <groupId>org.seleniumhq.selenium</groupId> 3 <artifactId>selenium-java</artifactId> 4 <version>3.14.0</version> 5 </dependency>
接着加上對應的瀏覽器驅動文件,就基本搞定環境了,能夠開始自動化測試代碼之路了。linux
固然你們在編寫代碼的過程當中也會用到如今流行的單元測試框架testng。如何在這基礎上增長testng環境?其實這也不是什麼難事,在testng的官網(https://testng.org/doc/index....)提供了Eclipse、IEDA等編輯器下如何安裝插件,好比Eclipse直接進入Market搜索testng安裝便可,使用maven則須要在pom.xml中添加依賴包:web
1 <repositories> 2 <repository> 3 <id>jcenter</id> 4 <name>bintray</name> 5 <url>http://jcenter.bintray.com</url> 6 </repository> 7 </repositories> 8 9 <dependency> 10 <groupId>org.testng</groupId> 11 <artifactId>testng</artifactId> 12 <version>6.10</version> 13 <scope>test</scope> 14 </dependency>
無腦等待下載安裝完成,後續就是寫代碼了,而後就能夠自由的揮灑了。
可是今天要介紹的不是上面這些,這種環境的搭建很是簡單,大多數人其實都會,坑也很少,只是個代碼環境而已。面試
咱們此次要處理的麻煩事是什麼呢?在如今日益發達的docker模式下,上述的編譯環境無法在linux系統上跑了,沒了代碼編輯器、沒了界面、也沒了瀏覽器,那應該如何操做呢?讓咱們來看一看。chrome
一樣的,仍是須要java+selenium+testng,只不過環境從windows變成了linux。docker
關於docker的使用這裏稍稍給你們介紹一下安裝、啓動過程:windows
直接使用yum install docker命令安裝;centos
service docker start啓動docker服務;瀏覽器
而後docker pull centos搞定centos版本下最基本的docker鏡像;
經過docker images命令能夠列出當前全部鏡像;
查看到linux的鏡像後,使用docker run -it -d 鏡像名稱,讓linux的容器跑起來(注意-it -d的參數,若是沒有容器一閃而過就掛起了);
進入容器可先經過docker ps查看當前全部運行的容器,若是查不到,說明容器並無啓動,或者已經關閉了,docker ps會列出容器的id;
使用docker attach 容器id便可登陸到容器中的linux了。
Docker下java環境搭建
容器裏的linux其實和普通的linux操做是同樣的了。
首先是安裝jdk:
下載 jdk-8u181-linux-x64.tar.gz 包;
tar -xzvf jdk-8u181-linux-x64.tar.gz 解壓,獲得jdk1.8.0_181 目錄(假設存放爲/root/java/ 目錄);
配置java的環境變量:
編輯環境變量文件:vi /etc/profile
加入內容:
1 export JAVA_HOME=/root/java/jdk1.8.0_181 2 export JRE_HOME=${JAVA_HOME}/jre 3 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 4 export PATH=${JAVA_HOME}/bin:$PATH
若是對軟件測試、接口測試、自動化測試、性能測試、LR腳本開發、面試經驗交流。感興趣能夠175317069,羣內會有不按期的發放免費的資料連接,這些資料都是從各個技術網站蒐集、整理出來的,若是你有好的學習資料能夠私聊發我,我會註明出處以後分享給你們。
刷新環境變量配置:
source /etc/profile
確認java版本是否生效:
java -version
到這裏java環境算是解決了,也沒什麼特別的難度,一步步來便可。
Docker下testng環境配置
接下來就是testng了,由於環境相似java並且也和環境變量有關係,因此優先解決:
下載 testng-6.14.3.jar 包;
tar -xzvf testng-6.14.3.jar解壓獲得testng目錄(假設放在 /root/java/testng/ 目錄下) ;
繼續編輯環境變量文件:
vi /etc/profile
加入內容:
export TESTNG_HOME=/root/java/testng export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH:$TESTNG_HOME/testng-6.14.3.jar
刷新環境變量配置:
source /etc/profile
注意這裏的testng環境變量,其中的 CLASSPATH 是在java環境的基礎上追加的,若是你們是在windows上配置,分隔符要換成 ; 且環境變量的互相調用形式不一樣,這是有一些區別的。
好了,可能有人會以爲,這不是很簡單嗎?
可是,若是這時候繼續去執行的話,會發現開始報錯了,也就是深坑來了,這是由於脫離了整個開發環境。
先提一下testng的執行步驟,假設本身寫個test.java,記住要最簡單的,別參合其餘jar包之類的,其中包含包名爲 simple ,類名爲 test:
export TESTNG_HOME=/root/java/testng export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH:$TESTNG_HOME/testng-6.14.3.jar
看似很是簡單,可是執行起來,處處都是錯誤,執行javac test.java,常見錯誤爲:
java.lang.NoClassDefFoundError: com/beust/jcommander/
這是缺乏由於缺乏編譯時用到的jar包,須要下載 jcommander-1.72.jar,咱們將它放置在testng的jar包一塊兒(假設放置在/root/java/testng/目錄):
環境變量的CLASSPATH須要追加 :
CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH:$TESTNG_HOME/testng-6.14.3.jar:$TESTNG_HOME/jcommander-1.72.jar
繼續刷新環境配置:
source /etc/profile
這以後通常就能夠順利編譯,出現 test.class 文件了。
若是出現其餘錯誤,好比與testng相關的包不存在等等,請檢查環境變量配置是否正確。
最後就是運行的環節了,也是你們會遇到問題點最多的點了。
先提一下結構,好比上面 simple.test 的類,那麼須要創建文件夾 simple 裏面存放test.java。
CLASSPATH的環境變量裏,須要有testng代碼文件和包的頂級目錄追加添加,假設爲
1 /root/java/testng/ 2 /root/java/testng/simple/test.java
若是對軟件測試、接口測試、自動化測試、性能測試、LR腳本開發、面試經驗交流。感興趣能夠175317069,羣內會有不按期的發放免費的資料連接,這些資料都是從各個技術網站蒐集、整理出來的,若是你有好的學習資料能夠私聊發我,我會註明出處以後分享給你們。
有了這樣的結構前提,就能夠經過命令執行了:
java org.testng.TestNG -testclass simple.test
出現結果,意味着運行成功了:
Total tests run: 1, Failures: 0, Skips: 0
若是你的代碼中有測試用例@Test,但run出現0的話,說明仍是失敗的,只是沒有給明確的報錯而已。
固然到這裏還沒意味着結束。
由於你可能還會遇到缺少各類依賴的jar包的問題:
能夠經過參數將這些jar包都引入
javac -Djava.ext.dirs=/root/java/jar test.java java -Djava.ext.dirs=/root/java/jar org.testng.TestNG -testclass simple.test
遠程調用windows下瀏覽器
覺得這就搞定環境,萬事大吉了麼?再補一刀,瀏覽器呢?沒有瀏覽器得問題應該怎麼解決呢?
請使用selenium自帶的server部署到windows機器上。
這個問題的解決反而是比較簡單的:
下載 selenium-server-standalone-3.14.0.jar 包;
放在指定目錄(好比放在C盤根目錄);
cd到該目錄下:cd C:\
執行命令打開selenium remote服務:
java -jar selenium-server-standalone-3.14.0.jar -port 6666
接下來有人會問怎麼指定瀏覽器?
只須要在java代碼裏,使用下面語句就能夠對剛纔在windows啓動的服務進行調用了:
WebDriver driver = new RemoteWebDriver("http://ip:6666/wd/hub/", DesiredCapabilities.chrome());
另外注意服務器上仍是須要瀏覽器的driver驅動文件,無腦一點就和jar包放一塊兒就完事了,愛折騰的能夠本身研究一把,區別只是啓動服務時須要帶上一些參數。
整個docker下使用selenium+java遠程調用widows下Chrome瀏覽器,實現web自動化的環境搭建完畢。