亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
在AC上開發(fā)selenium自動(dòng)化測試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/20 14:56:19 ] 推薦標(biāo)簽:

自動(dòng)化測試是把以人為驅(qū)動(dòng)的測試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過程。通常,在設(shè)計(jì)了測試用例并通過評(píng)審之后,由測試人員根據(jù)測試用例中描述的規(guī)程一步步執(zhí)行測試,得到實(shí)際結(jié)果與期望結(jié)果的比較。在此過程中,為了節(jié)省人力、時(shí)間或硬件資源,提高測試效率,便引入了自動(dòng)化測試的概念。

錄制一個(gè)簡單的web計(jì)算器功能,export到j(luò)unit模式,保存為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。

因此,在默認(rèn)模式下,Selenium Case實(shí)際上是以Junit Runner方式運(yùn)行的。

Junit本身是java單元測試框架,并不完全滿足我們selenium的測試需求,比如對(duì)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中,運(yùn)行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>

運(yùn)行AC framework,即可執(zhí)行selenium Job,并獲得測試報(bào)告

我們常用的是Selenium RC模式,即先啟動(dòng)一個(gè)selenium server,然后才能運(yùn)行selenium腳本。

java啟動(dòng)selenium server的命令行語句如下:

java –jar selenium-server.jar –port 4444 – proxyInjectionMode –log selServer.txt

如何把啟動(dòng) 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>

啟動(dòng)Selenium server的TestJob可與Selenium Test Job做一個(gè)dependence的定義,保證每次運(yùn)行selenium測試的時(shí)候,selenium server是處于啟動(dòng)狀態(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匯報(bào)當(dāng)前運(yùn)行狀態(tài),為成功

fail(String msg):向AC匯報(bào)當(dāng)前運(yùn)行狀態(tài),為失敗

reportWarning(String msg):向AC匯報(bào)當(dāng)前運(yùn)行狀態(tài),為警告

getDataProperty(String key):獲得測試數(shù)據(jù)

getEnvProperty(String key):獲得環(huán)境變量

getConfProperty(String key):獲得配置數(shù)據(jù)

getInputValue(String key):從全局?jǐn)?shù)據(jù)通道中獲得輸入數(shù)據(jù)

setOutputValue(String key,String value): 向全局?jǐn)?shù)據(jù)通道輸出數(shù)據(jù)

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 亚洲一区二区三区免费看 | 免费黄色网战 | 99视频全部看免费观 | 亚洲一区二区三区在线免费观看 | 欧美视频在线免费看 | 六月丁香综合网 | 色视频免费观看高清完整 | 久久网免费视频 | 日韩欧美一区二区久久 | 波多野吉衣 免费一区 | avhd101av高清迷片在线 | 色综合天天综合网看在线影院 | 777毛片 | 国产黄色一级毛片 | 国产女人伦码一区二区三区不卡 | 中文字幕一区在线观看视频 | 成人午夜影视 | 日韩中文字幕高清在线专区 | 国产精品12页| 夜色福利院在线看 | 亚州三级| 国产欧美在线播放 | 亚洲香蕉伊在人在线观看9 亚洲香蕉一区二区三区在线观看 | 久久久www免费人成看片 | 中文一级国产特级毛片视频 | 精品videoss另类日本 | 一级毛片在线不卡直接观看 | 日本欧美黄色 | 五月天婷婷在线播放 | 最好看免费中文字幕2019 | 欧美视频精品在线 | 天堂最新在线资源 | 国产韩国精品一区二区三区久久 | 欧美日韩在线免费观看 | 欧美jizzhd精品欧美另类 | 小明日韩在线看看永久区域 | 国产精品一区二区久久精品 | 一级日韩片 | 午夜黄色网 | 不卡视频免费在线观看 | 精品视频vs精品视频 |