CHƢƠNG 2 KỸ THUẬT LÀM TĂNG TÍNH KHẢ KIỂM THỬ
3.2 Tính khả kiểm thử của các ứng dụng trên nền web
3.2.3 Tính khả kiểm thử cho phần trình duyệt
Ở phần trình duyệt, chúng ta cần chú ý đến tính khả kiểm thử của các trang web viết bằng ngôn ngữ HTML. Để có thể tăng tính khả kiểm thử cho trang web, ví dụ viết mã kiểm thử tự động, áp dụng lý thuyết ở Chƣơng 2, chúng ta cần:
Tăng khả năng điều khiển trang web Tăng khả năng quan sát trang web
3.2.3.1 Công cụ hỗ trợ
Khác với phần trƣớc, ở phần trình duyệt này chúng tôi muốn giới thiệu một công cụ phổ biến nhất là Selenium17. Selenium là một cài đặt của
16 http://en.wikipedia.org/wiki/SoapUI
WebDriver18. WebDriver là một công cụ để tự động hóa kiểm thử ứng dụng web. Cụ thể nó cung cấp giao diện lập trình ứng dụng giúp viết mã kiểm thử với trang web dễ dàng hơn, không phụ thuộc vào trình duyệt cụ thể nào (minh họa Hình 11), tƣơng tự nhƣ JUnit cho Java.
Hình 12 WebDriver
Hình 13 là một đoạn mã Java sử dụng selenium để tƣơng tác với trang
18 https://w3c.github.io/webdriver/webdriver-spec.html
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver; public class Example {
public static void main(String[] args) {
// Create a new instance of the html unit driver
// Notice that the remainder of the code relies on the interface,
// not the implementation.
WebDriver driver = new HtmlUnitDriver(); // And now use this to visit Google
driver.get("http://www.google.com"); // Find the text input element by its name
WebElement element = driver.findElement(By.name("q")); // Enter something to search for
element.sendKeys("Cheese!");
// Now submit the form. WebDriver will find the form for us from the element
element.submit();
// Check the title of the page
web, thực hiện các hành động thay cho ngƣời kiểm thử phải làm bằng tay.
Khi viết những đoạn mã này chúng ta có thể thấy chúng ta cần điều khiển trang web, và quan sát kết quả, thông tin ở trên trang web đó. Do đó để tăng khả năng điểu khiển và khả năng quan sát, tức là tăng tính khả kiểm thử, ta phải chú ý đến việc giúp định vị các phần tử trong trang web một cách dễ dàng. Ở ví dụ trên chúng ta có lệnh xác định phần tử có thuộc tính name là “q”.
3.2.3.2 Tăng khả năng điều khiển trang web
Để tăng khả năng điều khiển trang web, chúng ta cần dễ dàng truy cập các thành phần trong trang web. Thông thƣờng các trang HTML này rất phức tạp vì đƣợc sinh ra từ mã nguồn, nên cấu trúc của chúng nhiều khi không thể đọc đƣợc. Ví dụ nhƣ Hình 14 là một đoãn mã HTML của trang web
http://asp.net. Có thể thấy việc đọc file này để lấy đƣợc một phần tử trong hình là việc rất không dễ dàng.