天天看點

(軟體測試)Lab2:Selenium 程式設計實驗報告

Selenium 程式設計實驗報告

1. 錄制腳本

  首先下載下傳SeleniumIDE 插件,這裡我選擇selenium_ide-2.9.1-fx版本。然後拖到firefox浏覽器中插件管理界面,點選安裝。在所需要進行錄制的界面上,點選插件,之後在該界面上完成一系列的操作。當需要停止錄制的時候,點選selenium界面右上角的紅點。可以通過selenium上的運作按鈕來測試腳本錄制效果。之後選擇檔案導出腳本,導出的格式選擇Java/JUnit4/WebDriver。命名檔案名為Selenium.java。儲存到桌面。

2. 添加相關jar包

  用ideaIDE建立java項目,将Selenium.java 複制到src目錄中。修改該檔案中的package; 并将如下的jar包下載下傳下來,并添加到External Libraries.

(軟體測試)Lab2:Selenium 程式設計實驗報告

  在下載下傳的過程中一定要注意版本,在這裡我下的selenium-java是2.53的。

3. 測試能否運作腳本

  當所有的jar包添加成功後,我們會看到。原本Selenium.java 檔案中找不到的類找到了。IDE 不報錯了。這個時候,我們就可以先運作一下,這個檔案,看能否模拟腳本中的操作。

  不幸的是,并不能很好的運作。我們可以看到firefox 浏覽器被程式喚出了,但是界面一直停在那裡,并沒有動。過一會就會抛出一個異常。經過一番百度,我們得知,這是由于firefox 浏覽器的版本太新了。

  于是,我們找到了firefox 的ftp,https://ftp.mozilla.org/pub/firefox/releases/,我們找到41.0/linux-x86_64/zh-CN/,然後下載下傳。Ubuntu下用“tar -jxvf 檔案名”來解壓該檔案,我們把該檔案解壓到/opt目錄下。之後我們需要做的就是删除之前的firefox。用如下指令移除。

  sudo apt-get remove firefox

  sudo apt-get autoremove

  移除了之前版本的firefox 之後,我們還要注意,需要在/usr/bin目錄下建立firefox 的連結檔案。

  ln -s /opt/firefox/firefox /usr/bin/firefox

  然後用終端打開firefox,點選右上角的菜單鍵,檢視目前firefox 的版本。

(軟體測試)Lab2:Selenium 程式設計實驗報告

  這個時候我們要做的就是馬上關閉firefox 的自動更新。在設定中。如下圖

(軟體測試)Lab2:Selenium 程式設計實驗報告

  這個時候,我們就算是解決了剛剛的問題了。然後再次點選運作。果然,能夠測試成功了。

4. 測試思路

  我們首先要将csv檔案中的所有資料提取主來,放到一個List中,之後,讓測試通過@RunWith(Parameterized.class)來對List中的數組進行逐一測試。

  對于@Before,我們需要将driver 執行個體化,并且跳轉到baseUrl即可。

  對于@After,我們需要退出driver。

  對于@Parameterized.Parameters,我們需要讀取csv檔案,并将資料轉化成List數組。

  還要根據需要寫對應的構造函數。

5. 編寫程式

  趟過了剛剛所有的艱難之後,我們終于要寫程式了。其他的都比較好寫,不做贅述。我們将如何寫@Parameterized.Parameters函數。我将inputgit.csv檔案放在了項目同級目錄。這樣在程式中,我們需要定位到inputgit.csv檔案。因為常識,我們知道csv檔案中一行資料是以‘,’為分隔符的,是以,我們用java直接操作檔案就好,不過,我在讀入的時候會遇到一個問題,就是中文亂碼問題,經過百度和測試,才确定這個csv的檔案的編碼個是GBK的。是以通過

  BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(inputFile), "GBK"));

  來進行讀取,就能解決亂碼問題。之後,我們能夠将資料按照特定的順序,組成一個List等待測試。

  在@Test這個函數中,我們要做的就是,接收浏覽器界面中的傳回資料,我們可以看到有一個div中的innerHTML的文字就是我們所需要的資料,我們可以通過id定位到這個元素,之後再擷取它的innerHTML來獲得資料。

  String result = driver.findElement(By.id("resultString")).getAttribute("innerHTML").trim();

  獲得後的資料中首部會有多餘的空格,用.trim(),去掉多餘的空格就得到了我們想要的資料,之後在通過Junit中的asserEquals進行比對即可。

6. 結果展示。

(軟體測試)Lab2:Selenium 程式設計實驗報告

  我們可以清楚的看出有5位同學的名字是有錯誤的。

轉載于:https://www.cnblogs.com/lmns/p/6624597.html