軟件測試中在AC上開發selenium自動化測試

發表于:2011-01-10來源:作者:點擊數: 標簽:軟件測試自動化資源時間
軟件測試 中在AC上 開發 selenium 自動化測試 自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了 測試用例 并通過評審之后,由 測試人員 根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為

軟件測試中在AC上開發selenium自動化測試

自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例并通過評審之后,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬件資源,提高測試效率,便引入了自動化測試的概念。

錄制一個簡單的web計算器功能,exportjunit模式,保存為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之間的依賴關系及數據交互,web測試抓圖等等,junit并不能勝任。

代碼從Junit模式轉化到AC模式

可遵循以下步驟,將junit模式的selenium 代碼轉化成在AC模式:

1. java環境中的classPath添加ac_framework.jar

2. case文件頭添加 import framework.JobDOM.ACSeleniumJob;

selJava 的父類改為ACSeleniumJob,

public class selJava extends ACSelniumJob

Ok,到這里,新的selenium case已經完成了(紅色為修改處),如下:

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,獲得測試結果

TestJobFile中添加Selenium Job,按如下格式定義

<Selenium name=”selenium_demo” description=”Test calc” depends=”" >

<TestData type=”xml” location=”selenium\config.xml”/>

<JobInput name=”$MAIL_SUBJECT”/>

<ClassPath location=”selenium\selenium-java-client-driver_self_extended_oracle.jar”/>

<ClassPath location=”selenium\orajtst.jar”/>

<ClassPath location=” selenium\qa.jar”/>

<ClassPath location=” selenium\selJava.class”/>

<SelTestCase path=”selJava”>

<SelTest name=” testSelJava “/>

</SelTestCase>

</Selenium>

運行AC framework,即可執行selenium Job,并獲得測試報告

我們最常用的是Selenium RC模式,即先啟動一個selenium server,然后才能運行selenium腳本。

java啟動selenium server的命令行語句如下:

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

如何把啟動 selenium serverjava命令行也集成到AC中來呢?

這里要用到ACAnt Engine。

創建基于Ant EngineTestJob,TestJob內容遵循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 serverTestJob可與Selenium Test Job做一個dependence的定義,保證每次運行selenium測試的時候,selenium server是處于啟動狀態的

<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匯報當前運行狀態,為成功

fail(String msg):向AC匯報當前運行狀態,為失敗

reportWarning(String msg):向AC匯報當前運行狀態,為警告

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

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

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

getInputValue(String key):從全局數據通道中獲得輸入數據

setOutputValue(String key,String value) 向全局數據通道輸出數據

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97