讓Java/Selenium自動化測試程式變得更簡潔易讀

讓Java/Selenium自動化測試程式變得更簡潔易讀

selenide-logo-big[1]

 

不好的程式寫法通常沒有文件或是註解,好的程式甚至不需要額外文件就可以理解!

基於這個設計理念下,”Selenide”就誕生。

我們會舉一個簡單的範例說明為什麼Selenide這個框架讓自動化測試程式變得簡潔也更容易了解。

 

自動化測試設計理念

主要的設計理念在於將自動化測試程式簡化為三步驟。

  • 1. 瀏覽網頁
  • 2. 找到網頁元件
  • 3. 驗證

其他的宣告、呼叫、邏輯等Selenide會處理。是不是很方便呢?

  open("/login");
  $("#submit").click();
  $(".message").shouldHave(text("Hello"));

驗證元件是否存在?

如果用 Selenium 檢查元件是否存在我們可能用會下列方式

assertEquals(2, getElements(By.className("item")).size());

但是如果採用 Selenide 程式就會變成比較簡潔而且可讀。

$$(".item").shouldHave(size(2));

Find Element by ID

Selenium的寫傳統寫法

WebElement customer = driver.findElement(By.id("customerContainer"));

Selenide的寫法

是不是簡潔許多呢?

WebElement customer = $("#customerContainer");

Selenide 如何安裝

1. 下載 Selenide Jar http://search.maven.org/remotecontent?filepath=com/codeborne/selenide/2.16/selenide-2.16.jar

2. 於 Java 程式中 import

import static com.codeborne.selenide.Selenide.*;
import static com.codeborne.selenide.Condition.*;

簡潔程式碼範例

下列程式會啟動 FireFox 瀏覽 Google,並且搜尋關鍵字 “Selenide Google Search”

[pastacode lang=”java” message=”” highlight=”” provider=”manual”]

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.firefox.FirefoxDriver;

import static com.codeborne.selenide.CollectionCondition.size;
import static com.codeborne.selenide.Condition.text;
import static com.codeborne.selenide.Condition.visible;
import static com.codeborne.selenide.Selenide.*;
import static com.codeborne.selenide.Condition.*;

public class selenide_test {
  @Test
  public void search_selenide_in_google() {
    open("http://google.com/");
    $(By.name("q")).setValue("Selenide Google Search");
    
  }
}

[/pastacode]

 

參考資料

http://selenide.org/documentation.html

https://github.com/codeborne/selenide/wiki/Snippets

https://github.com/selenide-examples

https://github.com/codeborne/selenide/wiki/Selenide-vs-Selenium

 

Leave a Reply

Your email address will not be published. Required fields are marked *