Canoo WebTest

Chuyên đề thảo luận về các công cụ hỗ trợ kiểm thử tự động.
Forum rules
Chuyên đề này chỉ thảo luận về Automation Testing Tool.
Để có kết quả nhanh, bạn nên search trước khi viết bài mới.
Post Reply
tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Canoo WebTest

Post by tvn »

Giới thiệu với các bạn một tool dùng để test web site: Canoo WebTest

Mình đã thử cài đặt và test thử trên win xp sp3.

Mặc dù là phần mềm miễn phí và là open source nhưng công cụ này hỗ trợ phần lớn việc test một trang web.

I. Cài đặt công cụ:
Công cụ này chạy độc lập nên không cần gắn vào framework nào, nhưng nó cần phải đáp ứng một số yêu cầu sau:

1. A platform that is able to run Java. //Hệ điều hành phải cho phép chạy các ứng dụng java.
2. An installed JDK version 5 or higher. //Phải cài JDK phiên bản 5 trở lên.
3. Ant version 1.7.0 or newer (optional) //Có sẵn chương trình Ant phiên bản 1.7.0 trở lên (chọn thêm)

Sau khi đã chuẩn bị môi trường cho windows xong, chúng ta download công cụ này về.

Image

Với mục đích sử dụng công cụ này thì click vào đây để download canoo webtest

Để download source chương trình thì click vào đây.

Giải nén:
Sau khi down về xong thì giải nén file build.zip vào một thư mục nào đó tùy ý. Ví dụ như hình bên dưới

Image

Khai báo đường dẫn vào biến môi trường của windows

Thêm đường dẫn thư mục thư bin/ của WebTest home vào mục khai báo đường dẫn của Hệ điều hành Windows.
bằng cách bấm phím WinKey + Pause để mở System Properties (hoặc click vào My Computer rồi click Properties).

Sau khi thực hiện bấm như trên thì được kết quả như hình bên dưới:

Image

Click vào button Environment Variables sẽ được như hình bên dưới

Image

Edit giá trị của biến Path bằng cách Click đúp vào dòng này sẽ được như hình bên dưới

Image

Sau đó click OK để đóng các hộp thoại.

Tới đây là cài đặt xong

II. Tạo một project và chạy thử demo:
Để tạo một project mới thì vào MS-DOS, đứng bất kỳ đâu cũng được ví dụ như C:\, gõ lệnh webtest -f D:\Webtest\webtest.xml wt.createProject rồi nhấn enter.

Trong cú pháp trên: D:\Webtest\webtest.xml là đường dẫn mình đã bung file build.zip ở bước cài đặt

Sẽ được hình như bên dưới

Image

Ở hình trên là chương trình yêu cầu mình nhập vào tên của project, mình đặt tên là "www.testingvn.com" sau khi nhập xong tên thì nhấn enter. Nếu mình không nhập tên mà nhấn enter thì chương trình sử dụng tên mặc định là "myWebTestProject"

Sau khi nhập tên xong và nhấn enter thì sẽ được như hình bên dưới:

Image

Thời gian thực hiện là 1 phút 3 giây là do chờ mình nhập tên vào, mình đã để chờ lâu, nếu các bạn nhập ngay và enter ngay thì thời gian hoàn thành mất khoảng 20 giây (chạy rất nhanh).

Chạy demo:
Để chạy demo test thử trang web gooogle, chúng ta vào MS-DOS, vào thư mục đã tạo project và gõ lệnh "webtest" rồi enter là xong

Image

Sau khi chạy một lúc sẽ hiển thị cửa sổ như hình dưới:

Image

Lúc này chương trình đang thực hiện các test case đã viết trong phần demo.

Sau khi chạy xong thì hiển thị màn hình báo cáo kết quả như hình dưới:

Image

Quay lại màn hình MS-DOS:

Image

Thời gian thực thi chỉ mất 19 giây để thực hiện 6 test case và hàng trăm bước nhập dữ liệu và click button.

III. Cấu trúc của script:

Script được viết bằng ngôn ngữ xml, tương đối dễ sử dụng.

Một script có cấu trúc như sau:

Image

Như script trên thì mình dùng lệnh invoke để mở một trang web

Code: Select all

<invoke
        url="http://www.testingvn.com/"
        description="Test thu thoi" />
và sử dụng lệnh verifyTitle để kiểm tra title của trang web vừa được mở ở trên.

Code: Select all

<verifyTitle 
        text="Software tesing"
        description="Title cua trang web la:" />
Các câu lệnh khác như

Code: Select all

<property name="webtest.home" location="D:/webtest" />
thì mình chỉ cần thay đổi đường dẫn đến thư mục cài đặt webtest (phần bung file nén ở bước I)

Trong trang home page của WEBTEST CANOO có hướng dẫn cụ thể các hàm (một hàm là một thẻ) và thuộc tính của các hàm này. Các bạn tham khảo ở trang này nha, mình không liệt kê hết vào đây được.

Như vậy là chúng ta có thể sử dụng một công cụ để test website được rồi.
Vấn đề còn lại là học thuộc càng nhiều hàm càng tốt, còn không thì vào website mà tham khảo.



luasaigon
Fresher Tester
Posts: 36
Joined: Thu 27 Oct, 2011 10:50 pm
Contact:

Re: Canoo WebTest

Post by luasaigon »

Cảm ơn bạn về bài viết, mình đã thử cài đặt nhưng khi chạy vẫn chưa được. bạn có thể giúp mình được không.

Image

Image

Image



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

Re: Canoo WebTest

Post by tvn »

Chào bạn,

Mình chưa thử cài Canoo webtest trên Win7 nên cũng không biết thế nào, nhưng nhìn hình thì thấy bạn làm đúng các bước rồi đó. Và nó đang báo lỗi là nó không biết file java.exe. Bạn thử tìm hiểu thêm chỗ java xem.



luasaigon
Fresher Tester
Posts: 36
Joined: Thu 27 Oct, 2011 10:50 pm
Contact:

Re: Canoo WebTest

Post by luasaigon »

uhm, de minh thu cai lai cai jdk thu xem, thank ban.



luasaigon
Fresher Tester
Posts: 36
Joined: Thu 27 Oct, 2011 10:50 pm
Contact:

Re: Canoo WebTest

Post by luasaigon »

Chào bạn, mình đã chạy được rổi (lỗi do phần jdk) nhưng mình còn hơi lờ mờ về lợi ích của việc sử dụng các tool test khi test web. bạn có thể trả lời giùm mình mấy câu hỏi sau:
1. khi nào thi nên dùng tool để test cho 1 website?
2. Việc sử dụng tool hiểu quả nhất trong các loại test nào? khi test giao diện và function bình thường cho 1 website, ta có cần sử dụng tool?
Cảm ơn bạn nhiều.



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

Lợi ích của việc sử dụng testing tool

Post by tvn »

Chào ban,

Lợi ích của tool thì rất nhiều, khỏi bàn cãi. Vấn đề ở chỗ là khi ứng dụng tool vào dự án thực tế sẽ mất chi phí cho nó nhiều hay không? đây mới là vấn đề. Các khó khăn khi dùng tool là: thời gian tìm hiểu, áp dụng vào thực tế. Thời gian training cách sử dụng, cách code,... cho các bạn khác trong nhóm, tổ chức,... Script test case đã viết có tái sử dụng được nhiều không? Tóm lại việc áp dụng tool vào thực tế là một vấn đề thách thức lớn. Chưa nói đến chuyện rất nhiều QC/tester không biết code.

Thông thường thì tool hiệu quả khi tính chất dự án lặp đi lặp lại nhiều, ví dụ như công ty A chuyên làm website bán hàng. Cty đã có một website hoàn chỉnh (ít bug nhất có thể và vận hành thực tế ổn định) nếu khách hàng khác đặt hàng thì họ chỉ việc copy hệ thống này ra và chỉnh sửa một vài chức năng, giao diện, cấu hình,... rồi giao cho khách hàng (dự án chỉ trong vòng 1 tuần là xong) thì lúc này thời gian test chiếm > 50% (test lại tất cả các luồng công việc, các màn hình). Nếu cty này chịu bỏ ra chi phí ban đầu là viết 1 bộ test case cho tool test (GUI và function) thì đến lúc này họ chỉ cần xem nên chạy test case nào, không chạy test case nào, và click RUN rồi chờ 10 phút là có kết quả, test case nào pass, test case nào fail. Sau khi chỉnh sửa code rồi chạy lại test case nữa, lặp đi lặp lại vài lần RUN toàn bộ test cases này sẽ cho ra chất lượng tốt nhất với thời gian test ngắn nhất (nếu đã có bộ test case rồi thì thời gian update sẽ ít).

Nếu công ty B làm dự án cho các khách hàng khác nhau ứng với từng nhu cầu riêng của họ, thì việc tạo ra bộ test case cho testing tool là không cần thiết vì mất nhiều thời gian và không tái sử dụng được nhiều.

Khi khách hàng hoặc sếp yêu cầu: tôi cần biết kết quả xảy ra khi có MỘT NGÀN user online cùng lúc. Thì nhóm test sẽ làm gì? Đi vận động mọi quan hệ bạn bè đồng nghiệp trên toàn thế giới cùng online vào một thời điểm à? Công ty toàn cầu có hơn 1000 nhân viên thì có thể làm được điều này, nhưng không biết tới nay có ai đã làm như vậy chưa :D. Lúc này thì cần phải có tool hỗ trợ, điển hình là Loadrunner và jmeter, tool sẽ giả lập các Vuser (người dùng ảo) để truy cập vào hệ thống và nó ghi lại thời gian phản hồi của server hệ thống, việc sử dụng tài nguyên,... và thống kê, báo cáo cho nhóm test. Dựa vào report đó nhóm test sẽ báo cáo cho sếp tình hình của hệ thống khi có MỘT NGÀN người cùng truy cập đồng thời.

Từ lâu, mọi người nghĩ tool chỉ có ích cho Regression Testing nhưng hiện nay có nhiều ý tưởng mới là viết testing tool hỗ trợ cho Exploratory Testing, là nhóm test cung cấp cho tool một số thông tin như giá trị input, các thuộc tính của biến, các kết quả mong muốn => tool sẽ tổng hợp thành rất nhiều test case, test scenario và thực thi chúng rồi report kết quả, lúc đó sẽ có thể có nhiều test case mà con người không nghĩ ra hoặc không có đủ thời gian để test (như là test vét cạn tất cả các trường hợp đầu vào).

Tóm lại, tool hữu ích cho Regression test (test GUI và chức năng) và Performance test (load test, stress test)



luasaigon
Fresher Tester
Posts: 36
Joined: Thu 27 Oct, 2011 10:50 pm
Contact:

Re: Canoo WebTest

Post by luasaigon »

cảm ơn bạn tvn, tuy mình chưa hiểu Regression testing và Exploratory testing là gì nhưng mình đã hiểu được phần nào về tool test sau khi đọc bài viết của bạn.



vuphat
Hoc Tester
Posts: 1
Joined: Mon 14 Jan, 2013 11:58 pm
Contact:

Re: Canoo WebTest

Post by vuphat »

bạn ơi cho mình hỏi lỗi không tìm thấy file "java.exe" như trên thế sửa như thế nào vậy.Mình cũng bị mắc lỗi đó .



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

Re: Canoo WebTest

Post by tvn »

luasaigon wrote:cảm ơn bạn tvn, tuy mình chưa hiểu Regression testing và Exploratory testing là gì nhưng mình đã hiểu được phần nào về tool test sau khi đọc bài viết của bạn.
Bạn tham khảo Regression testingExploratory testing ở link đính kèm nha.



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

Re: Canoo WebTest

Post by tvn »

vuphat wrote:bạn ơi cho mình hỏi lỗi không tìm thấy file "java.exe" như trên thế sửa như thế nào vậy. Mình cũng bị mắc lỗi đó .
Bạn xem lại phần jdk, hôm trước bạn Lụa đã cài lại jdk là OK đó bạn.



Post Reply

Return to “Automation Testing - Kiểm thử tự động”