在AC上開發(fā)selenium自動化測試
作者:網(wǎng)絡轉(zhuǎn)載 發(fā)布時間:[ 2013/3/20 14:56:19 ] 推薦標簽:
自動化測試是把以人為驅(qū)動的測試行為轉(zhuǎn)化為機器執(zhí)行的一種過程。通常,在設(shè)計了測試用例并通過評審之后,由測試人員根據(jù)測試用例中描述的規(guī)程一步步執(zhí)行測試,得到實際結(jié)果與期望結(jié)果的比較。在此過程中,為了節(jié)省人力、時間或硬件資源,提高測試效率,便引入了自動化測試的概念。
錄制一個簡單的web計算器功能,export到junit模式,保存為selJava.java文件,如下:
package com.example.tests;
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;
public class selJava extends SeleneseTestCase {
public void setUp() throws Exception {
setUp(”http://change-this-to-the-site-you-are-testing/”, “*chrome”);
}
public void testSelJava() throws Exception {
selenium.open(”/calc.htm”);
selenium.click(”//input[@name='alex' and @value='1']“);
selenium.click(”//input[@name='alex' and @value='+']“);
selenium.click(”//input[@name='alex' and @value='2']“);
selenium.click(”//input[@name='alex' and @value='=']“);
verifyEquals(”3″, selenium.getValue(”display”));
}
}
以上Selenium case繼承SeleneseTestCase,SeleneseTestCase的父類是Junit TestCase。
因此,在默認模式下,Selenium Case實際上是以Junit Runner方式運行的。
Junit本身是java單元測試框架,并不完全滿足我們selenium的測試需求,比如對case之間的依賴關(guān)系及數(shù)據(jù)交互,web測試抓圖等等,junit并不能勝任。
代碼從Junit模式轉(zhuǎn)化到AC模式
可遵循以下步驟,將junit模式的selenium 代碼轉(zhuǎn)化成在AC模式:
1. 在java環(huán)境中的classPath添加ac_framework.jar
2. 在case文件頭添加 import framework.JobDOM.ACSeleniumJob;
將selJava 的父類改為ACSeleniumJob,
public class selJava extends ACSelniumJob
Ok,到這里,新的selenium case已經(jīng)完成了(紅色為修改處),如下:
package com.example.tests;
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;
import framework.JobDOM.ACSeleniumJob
public class selJava extends ACSeleniumJob {
public void setUp() throws Exception {
setup(”http://change-this-to-the-site-you-are-testing/”, “*firefox”);
}
public void testSelJava() throws Exception {
selenium.open(”/calc.htm”);
selenium.click(”//input[@name='alex' and @value='1']“);
selenium.click(”//input[@name='alex' and @value='+']“);
selenium.click(”//input[@name='alex' and @value='2']“);
selenium.click(”//input[@name='alex' and @value='=']“);
verifyEquals(”3″, selenium.getValue(”display”));
}
}
將Selenium case添加到TestJobFile中,運行AC,獲得測試結(jié)果
TestJobFile中添加Selenium Job,按如下格式定義
<Selenium name=”selenium_demo” description=”Test calc” depends=”" >
<TestData type=”xml” location=”seleniumconfig.xml”/>
<JobInput name=”$MAIL_SUBJECT”/>
<ClassPath location=”seleniumselenium-java-client-driver_self_extended_oracle.jar”/>
<ClassPath location=”seleniumorajtst.jar”/>
<ClassPath location=” seleniumqa.jar”/>
<ClassPath location=” seleniumselJava.class”/>
<SelTestCase path=”selJava”>
<SelTest name=” testSelJava “/>
</SelTestCase>
</Selenium>
運行AC framework,即可執(zhí)行selenium Job,并獲得測試報告
我們常用的是Selenium RC模式,即先啟動一個selenium server,然后才能運行selenium腳本。
java啟動selenium server的命令行語句如下:
java –jar selenium-server.jar –port 4444 – proxyInjectionMode –log selServer.txt
如何把啟動 selenium server的java命令行也集成到AC中來呢?
這里要用到AC的Ant Engine。
創(chuàng)建基于Ant Engine的TestJob,TestJob內(nèi)容遵循Ant語法,如下:
<Ant name=”Ant_StartSelenium” description=”selenium initialization” depends=”" daemon=”true”>
<java fork=”true” spawn=”true” jar=”D:selenium-server.jar”>
<arg line=”-port 4444 “/>
<arg line=”-proxyInjectionMode”/>
<arg line=”-log sel.txt”/>
</Java>
</Ant>
啟動Selenium server的TestJob可與Selenium Test Job做一個dependence的定義,保證每次運行selenium測試的時候,selenium server是處于啟動狀態(tài)的
<Ant name=”Ant_StartSelenium” description=”selenium initialization” depends=”" driver_type=”ANT” daemon=”true”>
………………………
</Ant>
<Selenium name=”selenium_demo” description=”Test calc” depends=” Ant_StartSelenium “ >
…………………….
</Selenium>
pass(String msg): 向AC匯報當前運行狀態(tài),為成功
fail(String msg):向AC匯報當前運行狀態(tài),為失敗
reportWarning(String msg):向AC匯報當前運行狀態(tài),為警告
getDataProperty(String key):獲得測試數(shù)據(jù)
getEnvProperty(String key):獲得環(huán)境變量
getConfProperty(String key):獲得配置數(shù)據(jù)
getInputValue(String key):從全局數(shù)據(jù)通道中獲得輸入數(shù)據(jù)
setOutputValue(String key,String value): 向全局數(shù)據(jù)通道輸出數(shù)據(jù)
關(guān)鍵詞閱讀
- Java Selenium (五) 元素定位大全
- Java Selenium(四)使用瀏覽器調(diào)試工具
- Java Selenium (三) 環(huán)境搭建基于 Maven
- Java selenium (二) 環(huán)境搭建方法
- Java selenium (一) selenium 介紹
- python selenium??webdriver 通過cookie登陸
- selenium啟動谷歌所遇到的問題
- Selenium webdriver 如何獲取彈出框上的元素
- Python+Selenium框架設(shè)計篇??unittest單元測試框架
- 使用selenium做自動化測試入門-基于JAVA
- Selenium自動化測試框架和個人見解
- Selenium基礎(chǔ)框架的封裝(Python版)
- 無論成�。篠elenium腳本在隨機測試中的復用
- Headless模式下的運行Selenium
- 配合Uirecorder使用Docker Selenium
- Windows下Python+Selenium環(huán)境搭建
活動專題
- 【獲獎名單公布】加入Alltesting眾測免費領(lǐng)取新發(fā)行測試書籍
- 加入Alltesting眾測免費領(lǐng)取新發(fā)行書籍《京東質(zhì)量團隊轉(zhuǎn)型實踐 從測試到測試開發(fā)的蛻變》
- 【Alltesting眾測2典】0元測試體驗+100元現(xiàn)金券+免費性能測試
- 先測試后付費-Alltesting眾測超級福利
- 2000元性能測試服務,安全生產(chǎn),穩(wěn)定運行,為您的系統(tǒng)保駕護航�。�!
- 在線性能測試工具(WebPR)培訓與技術(shù)交流(第二期)
- Alltesting眾測平臺全新功能已開啟!!
- 生命周期管理軟件ALM-本地安裝版本正式發(fā)布�。。�
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd