You are on page 1of 61

Bài 8 – Kiểm thử tự động

Công cụ kiểm thử phần mềm


Bộ môn Công nghệ phần mềm
Nội dung

£  Kiểm thử tự động


£  Tổng quan Selenium
£  Selenium IDE
£  Selenium WebDriver

Công cụ kiểm thử phần mềm 2


2/4/15
Đặt vấn đề

£  Bạn là một tester giỏi, bạn thiết kế các


testcase tốt và thực hiện cẩn thận chúng
nhưng còn thời gian và tiền bạc thì sao?
Again   Again  
…and  again  

I  have  to  do  this  


test  again.  
How  about  my  
girlfriend?  

Công cụ kiểm thử phần mềm 3


2/4/15
Định nghĩa

£  Kiểm thử tự động (automated testing) là


sử dụng công cụ để thực hiện tự động
một phần hoặc toàn bộ quy trình kiểm thử
và kiểm tra kết quả mà không cần sự can
thiệp của con người

Công cụ kiểm thử phần mềm 4


2/4/15
Lợi ích

£  Tiết kiệm thời gian và công sức


£  Giảm sự nhàm chán và sai xót
£  Nâng cao mức độ phủ của test suits
£  Có thể sự dụng lại các bộ test case

è Tuy nhiên lợi ích của việc tự động hóa


chỉ đạt được cao nhất khi nỗ lực cho việc
tự động hóa không quá lớn

Công cụ kiểm thử phần mềm 5


2/4/15
Ứng dụng

£  Kiểm thử tự động thích hợp


p  Kiểm thử hồi qui (Regression testing)
p  Kiểm thử hướng dữ liệu (Data driven testing)
p  Kiểm thử bản địa hóa (Localization testing)
¡  Kiểm thử trên nhiều nền tảng
¡  Kiểm thử trên nhiều ngôn ngữ
p  Kiểm thử khả năng chịu tải (Load testing)

Công cụ kiểm thử phần mềm 6


2/4/15
Khó khăn

£  Test scripts là mã nguồn


£  Xác nhận (validation) 1 testcase là Pass
hay Fail
£  Một số tình huống cần sự can thiệp của
con người (ví dụ như captcha)

Công cụ kiểm thử phần mềm 7


2/4/15
Các thành phần

£  Test script


p  Dùng công cụ record and replay
p  Tự viết script
£  Test data
p  CSDL
p  Xml, Cfv
£  Test validation

Công cụ kiểm thử phần mềm 8


2/4/15
Một số công cụ kiểm thử tự động

£  Functional test


p  QTP, Selenium, Windmill, …
£  Non-functional test
p  Load runner, CloudTest, Load Storm, …

Công cụ kiểm thử phần mềm 9


2/4/15
Nội dung

£  Kiểm thử tự động


£  Tổng quan Selenium
£  Selenium IDE
£  Selenium WebDriver

Công cụ kiểm thử phần mềm 10


2/4/15
Tổng quan Selenium

£  Selenium là công cụ


p  Mã nguồn mở
p  Kiểm thử tự động
p  Ứng dụng website

Công cụ kiểm thử phần mềm 11


2/4/15
Tổng quan Selenium

£  Selenium có 4 thành phần


p  Selenium IDE
p  Selenium RC
p  Selenium WebDriver
p  Selenium Grid

Công cụ kiểm thử phần mềm 12


2/4/15
Nội dung

£  Kiểm thử tự động


£  Tổng quan Selenium
£  Selenium IDE
£  Selenium WebDriver

Công cụ kiểm thử phần mềm 13


2/4/15
Selenium IDE

£  Plugin của Firefox


£  Chức năng Record và Playback

Công cụ kiểm thử phần mềm 14


2/4/15
Selenium IDE

£  Cài đặt http://seleniumhq.org/download/

Công cụ kiểm thử phần mềm 15


2/4/15
Selenium IDE

£  Chạy plugin

Công cụ kiểm thử phần mềm 16


2/4/15
Selenium IDE

£  Giao diện chính

Công cụ kiểm thử phần mềm 17


2/4/15
Công cụ kiểm thử phần mềm 18
2/4/15
Selenium IDE

£  Menu

Công cụ kiểm thử phần mềm 19


2/4/15
Selenium IDE

£  Cấu hình

Công cụ kiểm thử phần mềm 20


2/4/15
Selenium IDE

£  Thứ tự ưu tiên Locator

Công cụ kiểm thử phần mềm 21


2/4/15
Selenium IDE

£  Thanh công cụ

Tốc  độ  chạy  lại  


Ghi  /  dừng  ghi  
Chạy  toàn  bộ  Test  suite  
Chạy  Test  case  hiện  tại  
Tạm  dừng  /  chạy  =ếp  
Chạy  từng  bước  
Nhóm  các  bước  lại  
 
Công cụ kiểm thử phần mềm 22
2/4/15
Selenium IDE

£  Ví dụ Record and Playback


p  Bước 1:
¡  Chạy Selenium IDE
¡  Nhập Base Url: http://newtours.demoaut.com/

p  Bước 2:
¡  Trong Firefox nhập Url
http://newtours.demoaut.com/
Công cụ kiểm thử phần mềm 23
2/4/15
Selenium IDE

£  Ví dụ Record and Playback


p  Bước 3:
¡  Phải chuột trên khoảng trống trong trang
¡  Chọn “Show Available Commands”
¡  Chọn “assertTitle exact:Welcome: Mercury Tours”

Công cụ kiểm thử phần mềm 24


2/4/15
Selenium IDE
£  Ví dụ Record and Playback
p  Bước 4:
¡  Nhập “User name”: invalidUN
¡  Nhập “Password”: invalidUN

p  Bước 5:
¡  Bấm vào button “Sign-in”

Công cụ kiểm thử phần mềm 25


2/4/15
Selenium IDE

£  Ví dụ Record and Playback


p  Bước 6:
¡  Phải chuột trên khoảng trống trong trang
¡  Chọn “Show Available Commands”
¡  Chọn “assertTitle exact:Sign-on: Mercury Tours”
p  Bước 7:
¡  Bấm nút dừng quay

p  Bước 8:
¡  Bấm nút chạy lại test
Công cụ kiểm thử phần mềm 26
2/4/15
Selenium IDE
£  3 loại command
p  Action
¡  Thao tác trực tiếp thành phần của trang web
¡  Ví dụ: click, type
p  Accessors
¡  Cho phép lưu các giá trị vào các biến
p  Assertions
¡  Kiểm tra một điều kiện được thỏa
¡  3 loại
§  Assert: khi bị fail sẽ dừng test
§  Verify: khi bi fail sẽ ghi nhận và chạy tiếp
§  Waitfor: nếu điều kiện đúng trong thời gian chờ thì pass

Công cụ kiểm thử phần mềm 27


2/4/15
Selenium IDE

£  Các command thông dụng


Command   SL  tham  số   Giải  thích  
open   0  –  2   Mở  1  trang  theo  url  
click/clickAndWait   1   Click  vào  1  thành  phần  
type/typeKeys   2   Nhập  1  chuỗi  ký  tự  
verifyTitle/assertTitle   1   Kiểm  tra  =êu  đề  
verifyTextPresent   1   Kiểm  tra  có  1  đoạn  text  
verifyElementPresent   1   Kiểm  tra  có  1  thành  phần  
verifyTable   2   Kiểm  tra  1  table  
waitForPageToLoad   1   Chờ  cho  đến  khi  trang  được  tải  xong  
waitForElementPresent   1   Chờ  cho  đến  khi  1  thành  phần  xuất  hiện  
Công cụ kiểm thử phần mềm 28
2/4/15
Selenium IDE

£  Các loại Locator


p  ID p  DOM (Document
p  Name Object Model)
¡  getElementById
p  Link Text
¡  getElementsByName
p  CSS Selector
¡  dom:name
¡  Tag and ID
¡  dom:index
¡  Tag and class
p  XPath
¡  Tag and attribute
¡  Tag, class, and attribute
¡  Inner text

2/4/15   Công  cụ  kiểm  thử  phần  mềm   29  


Selenium IDE

£  Xác định bằng ID


p  Target: id=id of the element

Công cụ kiểm thử phần mềm 30


2/4/15
Selenium IDE

£  Xác định bằng Name


p  Target: name=name of the element

Công cụ kiểm thử phần mềm 31


2/4/15
Selenium IDE

£  Xác định bằng Name có filter


p  Target: name=name_of_the_element
filter=value_of_filter

Công cụ kiểm thử phần mềm 32


2/4/15
Selenium IDE

£  Xác định bằng Link Text


p  Target: link=link_text

Công cụ kiểm thử phần mềm 33


2/4/15
Selenium IDE

£  Xác định bằng CSS – Tag và ID


p  Target: css=tag#id

Công cụ kiểm thử phần mềm 34


2/4/15
Selenium IDE

£  Xác định bằng CSS – Tag và Class


p  Target: tag.class

Công cụ kiểm thử phần mềm 35


2/4/15
Selenium IDE

£  Xác định bằng CSS – Inner Text


p  Target: css=tag:contains(“inner text”)

Công cụ kiểm thử phần mềm 36


2/4/15
Selenium IDE

£  Tóm tắt các Locator


Method   Target  Syntax   Example  
By  ID   id=  id_of_the_element   id=email  

By  Name   name=name_of_the_element   name=username  

By  Name  Using  Filters   name=name_of_the_element  filte name=tripType  value=oneway  


r=value_of_filter  

By  Link  Text   link=link_text   link=REGISTER  


Tag  and  ID   css=tag#id   css=input#email  
Tag  and  Class   css=tag.class   css=input.inputext  
Tag  and  Atribute   css=tag[a7ribute=value]   css=input[name=lastName]  

Tag,  Class,  and  Atribute   css=tag.class[a7ribute=value]   css=input.inputext[tabindex=1]  

Công cụ kiểm thử phần mềm 37


2/4/15
Selenium IDE

£  verifyElementPresent
p  True nếu thành phần có tồn tại
p  False nếu thành phần không tồn tại
£  verifyElementNotPresent
p  True nếu thành phần không tồn tại
p  False nếu thành phần tồn tại

Công cụ kiểm thử phần mềm 38


2/4/15
Selenium IDE

£  verifyTextPresent
p  True nếu đoạn text có trong trang web
p  False nếu đoạn text không có trong trang
web
£  verifyTextNotPresent
p  True nếu đoạn text không có trong trang web
p  False nếu đoạn text có trong trang web

Công cụ kiểm thử phần mềm 39


2/4/15
Selenium IDE

£  verifyElementPositionLeft
p  Kiểm tra vị trí trái của 1 thành phần
£  verifyElementPositionTop
p  Kiểm tra vị trí trên của 1 thành phần

Công cụ kiểm thử phần mềm 40


2/4/15
Selenium IDE

£  andWait commands


p  Ví dụ
¡  clickAndWait
¡  typeAndWait
¡  selectAndWait
p  Chờ cho đến khi trang
tải xong mới thực hiện
bước tiếp theo

Công cụ kiểm thử phần mềm 41


2/4/15
Selenium IDE

£  waitFor commands


p  Ví dụ
¡  waitForTitle
¡  waitForTextPresent
¡  waitForAlert
p  Chờ cho đến khi điều kiện được thực thi mới
qua bước tiếp theo

Công cụ kiểm thử phần mềm 42


2/4/15
Selenium IDE

Công cụ kiểm thử phần mềm 43


2/4/15
Selenium IDE

£  Lưu giá trị vào biến

Công cụ kiểm thử phần mềm 44


2/4/15
Selenium IDE

£  Alerts và Pop-up


assertAlert    
assertNotAlert   Kiểm  tra  chuỗi  trong  alert  

assertAlertPresent    
assertAlertNotPresent   Kiểm  tra  có  alert  hay  không  

storeAlert   Lưu  chuỗi  trong  alert  

storeAlertPresent   Trả  về  True  khi  có  alert  và  False  khi  không  có  alert  

verifyAlert    
verifyNotAlert   Kiểm  tra  chuỗi  trong  alert  

verifyAlertPresent  
Kiểm  tra  có  alert  hay  không  
verifyAlertNotPresent  
Công cụ kiểm thử phần mềm 45
2/4/15
Nội dung

£  Kiểm thử tự động


£  Tổng quan Selenium
£  Selenium IDE
£  Selenium WebDriver

Công cụ kiểm thử phần mềm 46


2/4/15
Selenium WebDriver
£  Sử dụng ngôn ngữ lập trình để tạo các script
p  Sử dụng điều kiện rẽ nhánh
p  Sử dụng vòng lặp
£  Các ngôn ngữ hỗ trợ
p  Java
p  .Net
p  PHP
p  Python
p  Perl
p  Ruby

Công cụ kiểm thử phần mềm 47


2/4/15
Selenium WebDriver

£  Các trình duyệt hỗ trợ

Công cụ kiểm thử phần mềm 48


2/4/15
Selenium WebDriver

£  Các trình duyệt hỗ trợ


Trình  duyệt   Tên  Driver  Server   Chi  chú  
HTMLUnit   (none)   Không  cần  driver  

Firefox   (none)   Không  cần  driver  

Internet  Explorer   Internet  Explorer  Driver  Server   Có  2  phiên  bản  32  and  64-­‐bit  

Chrome   ChromeDriver  

Opera   OperaDriver  

PhantomJS   GhostDriver  

Safari   SafariDriver  

Công cụ kiểm thử phần mềm 49


2/4/15
Selenium WebDriver

£  WebDriver vs RC

Công cụ kiểm thử phần mềm 50


2/4/15
Selenium WebDriver

£  Ví dụ WebDriver với C#


p  Bước 1: download Selenium C# Client Driver
http://docs.seleniumhq.org/download/

p  Bước 2: cài đặt NUnit

Công cụ kiểm thử phần mềm 51


2/4/15
Selenium WebDriver

£  Ví dụ WebDriver với C#


p  Bước 3: dùng Selenium ghi lại các bước test
p  Bước 4: Export Test Case As à C# / NUnit /
WebDriver

Công cụ kiểm thử phần mềm 52


2/4/15
Selenium WebDriver

£  Ví dụ WebDriver với C#


p  Bước 5: tạo dự án
¡  Tạo dự án Class Library, ngôn ngữ C#
¡  Sao chép mã nguồn đã export vào dự án
¡  Thêm các Reference

Công cụ kiểm thử phần mềm 53


2/4/15
Selenium WebDriver

£  Ví dụ WebDriver với C#


p  Lập trình test case

Công cụ kiểm thử phần mềm 54


2/4/15
Selenium WebDriver

£  Ví dụ WebDriver với C#


p  Chạy trên trình duyệt Firefox

Công cụ kiểm thử phần mềm 55


2/4/15
Selenium WebDriver

£  Ví dụ WebDriver với C#


p  Chạy trên trình duyệt Chrome

Công cụ kiểm thử phần mềm 56


2/4/15
Selenium WebDriver

£  Ví dụ WebDriver với C#


p  Chạy nhiều testcases trên cùng 1 script

Công cụ kiểm thử phần mềm 57


2/4/15
Selenium WebDriver

£  Ví dụ WebDriver với C#


p  Chạy nhiều testcases trên cùng 1 script

Công cụ kiểm thử phần mềm 58


2/4/15
Selenium WebDriver

£  Ví dụ WebDriver với C#


p  Chạy nhiều testcases từ database

59
2/4/15
Công cụ kiểm thử phần mềm
Selenium WebDriver
£  Download các browser
p  Chrome diver: chromedriver_win_26.0.1383.0.zip

https://code.google.com/p/chromedriver/downloads/
list
p  IE driver: IEDriverServer_Win32_2.32.3.zip
https://code.google.com/p/selenium/downloads/list
p  Opera driver

https://code.google.com/p/selenium/wiki/
OperaDriver
p  Safari driver
https://code.google.com/p/selenium/wiki/SafariDriver
Công cụ kiểm thử phần mềm 60
2/4/15
Thảo luận

Công cụ kiểm thử phần mềm 61


2/4/15

You might also like