Tài liệu học Selenium.

Hướng dẫn sử dụng và các lệnh của công cụ kiểm thử giao diện, chức năng Selenium.
tieulong042
Hoc Tester
Posts: 5
Joined: Tue 12 Jun, 2012 2:51 pm
Contact:

Re: Tài liệu học Selenium.

Post by tieulong042 »

Chào các bạn! Mình mới học software testing, có 1 bài tập yêu cầu là tìm 1 chức năng trên trang thuenhanh.vn.
Sau đó thiết kế các testcase trên chức năng đó, sau đó dùng Selenium để test tự động. Các bạn cho mình hỏi là nên chọn chức năng thế nào để cho dễ test tự động nhất?
Thân!



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Tài liệu học Selenium.

Post by tvn »

Hi tieulong,

Bạn nên chọn chức năng login hoặc search hoặc insert 1 record mới (có validate thông tin input và nếu thêm vào DB xong thì có câu thông báo "đã insert thành công") là dễ nhất.



tieulong042
Hoc Tester
Posts: 5
Joined: Tue 12 Jun, 2012 2:51 pm
Contact:

Re: Tài liệu học Selenium.

Post by tieulong042 »

Chào ban tvn!
Chức insert 1 record mà bạn nói, như các chức năng đăng tin, đăng ký, cập nhật thông tin đều được hết đúng ko?
Ở đây cụ thể là đăng lên 1 căn nhà cần cho thuê(thuenhanh.vn). Vì khi chọn chức năng, mình sẽ thiết kế 30 test case trên chức năng đó, nếu chọn như login thì quá đơn giản! thiết kế 30 testcase không phải là chuyện dễ! Không biết mình nói z có đúng ko! Cám ơn bạn đã chia sẽ! :D



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Tài liệu học Selenium.

Post by tvn »

Chức năng insert là các chức năng mà bạn đã liệt kê ra, bạn có thể chọn 1 trong số các chức năng đó để tiến hành.

Bạn nói cần 30 test cases, nếu là test thủ công thì việc viết 30 test case rất dễ, còn test bằng công cụ - selenium - thì việc tìm ra 30 test case cho một chức năng là hơi bị khó. Lí do tại sao khó thì bạn tham khảo test case cho tool test và test thủ công nha.



tieulong042
Hoc Tester
Posts: 5
Joined: Tue 12 Jun, 2012 2:51 pm
Contact:

Re: Tài liệu học Selenium.

Post by tieulong042 »

tvn wrote:Chức năng insert là các chức năng mà bạn đã liệt kê ra, bạn có thể chọn 1 trong số các chức năng đó để tiến hành.

Bạn nói cần 30 test cases, nếu là test thủ công thì việc viết 30 test case rất dễ, còn test bằng công cụ - selenium - thì việc tìm ra 30 test case cho một chức năng là hơi bị khó. Lí do tại sao khó thì bạn tham khảo test case cho tool test và test thủ công nha.
Mình cũng nghĩ z, nhưng mà đây là bài tập thầy giao, mình còn vướng một chỗ đó là khi load từ csdl lên, thì không kiểm tra được captcha kiểm tra, bạn có gặp vấn đề này chưa!

Thân!



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Tài liệu học Selenium.

Post by tvn »

Trong các bước kiểm thử tự động thì vấn đề gặp phải là captcha/hay các loại câu hỏi. Vì vậy nếu mình đang test hệ thống của mình thì phải disable cái vụ này. Sau khi test xong thì bật captcha lên rồi test tay chỗ captcha xem chức năng này hoạt động đúng hay chưa. Đó là cách mình làm, có ai có cách nào khác hay hơn để xử lý vụ captcha xin chỉ giáo, thanks nhiều.



tieulong042
Hoc Tester
Posts: 5
Joined: Tue 12 Jun, 2012 2:51 pm
Contact:

Re: Tài liệu học Selenium.

Post by tieulong042 »

Cám ơn bạn nha!
Tại website này không phải của mình, chắc mình tìm cái nào không có captcha quá!

Thân!



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Tài liệu học Selenium.

Post by tvn »

Hihi :) Vì mục đích của captcha là không cho robot, tool thao tác mà :D



thelast02
Hoc Tester
Posts: 3
Joined: Wed 13 Apr, 2011 11:27 pm
Contact:

Re: Tài liệu học Selenium.

Post by thelast02 »

Hi các anh chị!
Em đang tìm hiểu về kiểm thử và Selenium. Các anh chị cho em hỏi một số thứ với ạ:
- Với Selenium IDE ta sử dụng chức năng record để ghi lại các test case như vậy là đòi hỏi các thao tác trên ứng dụng của mình phải chạy được rồi. Vậy với một ứng dụng mới, khi mà ta chưa biết các chức năng của nó đã chạy được chưa thì có thực hiện kiểm thử tự động được không ạ. Hay là với việc nâng cấp ứng dụng cũng vậy ạ, ta vẫn phải vào ứng dụng thực thi bằng tay các thao tác và record lại hay có cách nào không thực thi mà vẫn viết được kịch bản kiểm thử theo yêu cầu đã nâng cấp của ứng dụng không ạ.
- Khi sử dụng lệnh click and wait em rất hay bị báo lỗi time out dù thấy sau khi click form mới đã được load rồi ạ.
- Khi Export Test case Selenium IDE sang Selenium RC thì làm thế nào để có thể chạy được các lệnh verify và các lệnh assert ạ.
Em cảm ơn ạ :D



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Tài liệu học Selenium.

Post by tvn »

Chào bạn,

Mộ trong những lợi ích lớn mà test tool mang lại cho chúng ta là khả năng record và play các thao tác.
Và trong script của các tool dùng để test web nói chung và selenium nói riêng thì chủ yếu dựa vào địa chỉ "location" của các item, thường là name hoặc id. Vì vậy nếu một trang web chưa xây dựng xong thì mình không biết tên hay địa chỉ khác của các item thì không thể viết lệnh để thực thi test được.
Nếu có sẵn trang web rồi, bạn biết name của các item rồi, nếu không record thì bạn hoàn toàn có thể tự viết code bằng tay được. yêu cầu bạn phải thuộc lòng các tham số của từng command.

Khi sử dụng lệnh ClickAndWait hoặc các lệnh khác mà có đuôi là AndWait thì thường xảy ra lỗi timeout, theo mình thấy thì do nhiều chỗ người ta lập trình khi click vào link hay button nào đó thì không load lại trang mà chỉ load 1 bộ phận nào đó trong trang web thôi, vì vậy selenium nó không bắt được sự kiện AndWait đó (do nó chờ trang load xong) nên nó đợi hết thời gian timeout mình cho phép (cấu hình trong option) thì nó báo bị timeout. Lỗi này không làm ảnh hưởng đến kết quả của test case.

Nếu trong selenium có dùng hàm verify hoặc assert thì khi convert sang Junit (ví dụ) thì nó vẫn có hàm verify hoặc assert.
Đây là test case trên selenium ide

Code: Select all

<tr>
	<td>open</td>
	<td>/viewtopic.php?f=74&t=239</td>
	<td></td>
</tr>
<tr>
	<td>clickAndWait</td>
	<td>link=ISTQB Test Online</td>
	<td></td>
</tr>
<tr>
	<td>verifyTextPresent</td>
	<td>ISTQB Test Online</td>
	<td></td>
</tr>
Còn đây là test case khi convert sang Junit 4

Code: Select all

package com.example.tests;

import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.regex.Pattern;

public class test {
	@Before
	public void setUp() throws Exception {
		selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://www.testingvn.com/");
		selenium.start();
	}

	@Test
	public void testTest() throws Exception {
		selenium.open("/viewtopic.php?f=74&t=239");
		selenium.click("link=ISTQB Test Online");
		selenium.waitForPageToLoad("40000");
		verifyTrue(selenium.isTextPresent("ISTQB Test Online"));
	}

	@After
	public void tearDown() throws Exception {
		selenium.stop();
	}
}
Bạn sẽ thấy đoạn code verify trong selenium

Code: Select all

<tr>
	<td>verifyTextPresent</td>
	<td>ISTQB Test Online</td>
	<td></td>
</tr>
biến thành hàm

Code: Select all

verifyTrue(selenium.isTextPresent("ISTQB Test Online"));



Post Reply

Return to “Hướng Dẫn Sử Dụng Selenium”