Sahi (1) —— 快速入門(101 Tutorial)

Sahi (1) —— 快速入門(101 Tutorial)


jvm版本: 1.8.0_65javascript

sahi版本: Sahi Pro 6.1.0html

參考來源:java

Sahi官網chrome

Sahi Quick Tutorial瀏覽器

要求

Sahi運行須要Java 1.5 或更高版本jvm

下載

從官網下載Sahi Pro須要註冊獲取30天的試用期。目前Sahi貌似已不在提供社區版。測試

install_sahi_pro_v610_20150617.jar

安裝

雙擊「install_sahi_pro_xxx.jar」而後運行安裝包ui

或命令行運行lua

java -jar install_sahi_pro_xxx.jar

*注意,須要將Sahi安裝到目錄沒有空格的路徑下,不然Chrome可能會出錯。
河蟹

咱們支持正版,想延長試用期的童鞋私聊。firefox

啓動Sahi

Sahi Dashboard自動啓動Sahi代理,而且能夠啓動配置好的瀏覽器。

啓動Sahi Dashboard有三種方式:

  1. 雙擊桌面圖標
  2. 經過Windows啓動菜單運行
  3. 命令行

    • Windows
      • 進入目錄 ''' \userdata\bin''' 而後運行 '''start_dashboard.bat'''
    • Linux/Mac
      • 進入目錄 ''' /userdata/bin''' 而後運行 '''./start_dashboard.sh'''

錄製Sahi腳本

  1. 以Firefox爲例,點擊Sahi Dashboard上的瀏覽器圖標,咱們能夠看到Sahi的會爲咱們啓動它的一個首頁

  1. 在新的窗口打開「Sahi Controller」

  2. 在"Sahi Controller"上打開選項卡「Record」

  1. 在「Script Name:」處填上 first_script.sah,而後點擊「Record」

  2. 點擊「Sample Application」

  1. 打開Sahi的示例程序後,輸入用戶名「test」和密碼「secret」,而後點擊「Login」按鈕登錄

    最後一步的記錄可在「Evaluate Expression」中查看

  2. 登錄後是一個購物車,添加數量2,3,1而後點擊「Add」按鈕,底部會計算出總價。

斷言

一個腳本一般包括網頁上的操做以及功能驗證,Sahi能夠在錄製腳本的過程當中增長斷言,來實現驗證。

爲總價加一個斷言:

  1. 將鼠標移至頁面html元素上,而後按住CRTL鍵

    若是是Mac系統,應用程序窗體須要在focus狀態下接受鼠標的事件。
  2. 「Accessor」字段會出如今Controller上,在這個例子中,咱們將鼠標懸浮在「Grand Total」字段上

  3. 點擊「Assert」按鈕,爲元素生成斷言

  4. 這些斷言會在「Evaluate Expression」中看到

  5. 點擊「Test-->」 驗證斷言是否爲真

  6. 一旦斷言爲真,點擊「Append to Script」將斷言加入腳本

用「Evaluate Expression」和「Test-->」能夠執行任何javascript腳本,在Controller上的操做不會被錄下,只有頁面上的直接操做纔會被記錄。
  1. 點擊「登出」

  2. 在Controller上點擊「Stop」完成錄製

回放

  1. 輸入剛纔錄製好的腳本文件名稱到「File: 」字段下
  2. 輸入測試的開始地址

    http://sahitest.com/demo/training/login.htm
  3. 點擊「Play」按鈕

腳本中的步驟會被執行,Controller也會在「Statement」裏面輸出執行的結果,一旦執行完畢,會在底部出現「SUCCSESS」或者「FAILURE」的字樣。

*注意:Controller能夠隨時關閉,不會影響回放。

查看日誌

修改腳本

/* --Objects Definitions Above-- */

function login($user, $password){
  _setValue(_textbox("user"), $user);
  _setValue(_password("password"), $password);
  _click(_submit("Login"));
}

function addBooks($qJava, $qRuby, $qPython){
  _setValue(_textbox("q"), $qJava);
  _setValue(_textbox("q[1]"), $qRuby);
  _setValue(_textbox("q[2]"), $qPython);
  _click(_button("Add"));
}

function verifyTotal($total){
  _assertExists(_textbox("total"));
  _assert(_isVisible(_textbox("total")));
  _assertEqual($total, _getValue(_textbox("total")));
}

function logout(){
  _click(_button("Logout"));
}

/* --Functions Above-- */

_navigateTo("http://sahi.co.in/demo/training/");

login("test", "secret");
addBooks("2", "3", "1");
verifyTotal("1550");
logout();

first_script_lib.sah

function login($user, $password){
  _setValue(_textbox("user"), $user);
  _setValue(_password("password"), $password);
  _click(_submit("Login"));
}

function addBooks($qJava, $qRuby, $qPython){
  _setValue(_textbox("q"), $qJava);
  _setValue(_textbox("q[1]"), $qRuby);
  _setValue(_textbox("q[2]"), $qPython);
  _click(_button("Add"));
}

function verifyTotal($total){
  _assertExists(_textbox("total"));
  _assert(_isVisible(_textbox("total")));
  _assertEqual($total, _getValue(_textbox("total")));
}

function logout(){
  _click(_button("Logout"));
}

first_script.sah

_include("first_script_lib.sah");

_navigateTo("http://sahi.co.in/demo/training/");

login("test", "secret");
addBooks("2", "3", "1");
verifyTotal("1550");
logout();

命令行使用

$ ./testrunner.sh first_script.sah http://sahitest.com/demo/training/ firefox

測試套件

invalid_login.sah

_setValue(_textbox("user"), "test");
_setValue(_password("password"), "badpassword");
_click(_submit("Login"));
_assert(_isVisible(_div("errorMessage")));
_assertEqual("Invalid username or password", _getText(_div("errorMessage")));

tutorial.suite

first_script.sah
invalid_login.sah

命令行運行

$ ./testrunner.sh tutorial.suite http://sahitest.com/demo/training/ chrome

執行結果

結束

相關文章
相關標籤/搜索