在AC上开发selenium脚本
上一篇 / 下一篇 2010-11-25 11:44:56 / 个人分类:自动化测试框架
开发selenium Case
1.1 基于录制回放的selenium case
录制一个简单的web计算器功能,export到junit模式,保存为selJava.java文件,如下:51Testing软件测试网.jk6pm"Z
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方式运行的。51Testing软件测试网9n!g;PviLJ
Junit本身是java单元测试框架,并不完全满足我们selenium的测试需求,比如对case之间的依赖关系及数据交互,web测试抓图等等,junit并不能胜任。51Testing软件测试网V:@T LF6JTI7I
1. Selenium代码从Junit模式转化到AC模式
可遵循以下步骤,将junit模式的selenium代码转化成在AC模式:51Testing软件测试网#j Ch)I,K*A2B1N:g\
1. 在java环境中的classPath添加ac_framework.jar
9jB[,`~HQ02. 在case文件头添加import framework.JobDOM.ACSeleniumJob;
?m9CA!n#YE#c`0将selJava的父类改为ACSeleniumJob,51Testing软件测试网*o]Ese
public class selJava extends ACSelniumJob
BG[zd5W*v0
Ok,到这里,新的selenium case已经完成了(红色为修改处),如下:
1^ @8\Z4s~d0package 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"));
}
zuAr yv#\.{0}
2.将Selenium case添加到TestJobFile中,运行AC,获得测试结果
TestJobFile中添加Selenium Job,按如下格式定义51Testing软件测试网;S!e x ]%h
<Seleniumname="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"/>51Testing软件测试网RL&e-L1fZ
<ClassPath location=" selenium\selJava.class"/>
$\6RQK^9B3o!H0 <SelTestCasepath="selJava">
<SelTestname="testSelJava"/>
</SelTestCase>
</Selenium>
运行AC framework,即可执行selenium Job,并获得测试报告
3 将启动selenium server集成到TestJob中
我们最常用的是Selenium RC模式,即先启动一个selenium server,然后才能运行selenium脚本。
PpXj(f"RwX,y%T0java启动selenium server的命令行语句如下:
N e2D\%wd K \0java –jar selenium-server.jar –port 4444 – proxyInjectionMode –log selServer.txt
JYV!ES0如何把启动selenium server的java命令行也集成到AC中来呢?
"{;WlE3p+v)\b0这里要用到AC的Ant Engine。51Testing软件测试网})M"Nd)dtl T u
创建基于Ant Engine的TestJob,TestJob内容遵循Ant语法,如下:51Testing软件测试网x1T7s"@+g ?:?7A
<Antname="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是处于启动状态的
1O}{(B L.F*wJPC0<Antname="Ant_StartSelenium" description="selenium
initialization" depends=""driver_type="ANT"daemon="true">
………………………
</Ant>
<Seleniumname="selenium_demo" description="Test calc" depends="
Ant_StartSelenium ">
…………………….
</Selenium>
a+~ t^!R.g@"C0]U5G^b'O B1m0
4 框架提供的selenium API
pass(String msg):向AC汇报当前运行状态,为成功
7}{ j y0|6R0{%Gf0fail(String msg):向AC汇报当前运行状态,为失败
Z%oIk;B;Wu9G;So0reportWarning(String msg):向AC汇报当前运行状态,为警告51Testing软件测试网*`N y{@&n
getDataProperty(String key):获得测试数据
'RH,o7_'X4^0getEnvProperty(String key):获得环境变量及输入数据
{voJ%z-M0getConfProperty(String key):获得配置数据51Testing软件测试网6b#G$Q+qy/K{3n
setOutputValue(String key,String value):向全局数据通道输出数据51Testing软件测试网,g2iho:D5a?_
!_Ck2u$q S0
5 Automation 报告
运行TestJob,产生基于html页面的测试报告
p*GmiP'D{"jl0总览报告51Testing软件测试网:n7l E6hy*H4Q
51Testing软件测试网~U_ u2M"NS6c
细分诊断报告51Testing软件测试网n}s7k0Z*_-J6~2y|Y
51Testing软件测试网+yEv_(P8F
|
@ VB ok0
ZA2clE,h)M0
TAG:
标题搜索
日历
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
1 | 2 | 3 | 4 | 5 | 6 | ||||
7 | 8 | 9 | 10 | 11 | 12 | 13 | |||
14 | 15 | 16 | 17 | 18 | 19 | 20 | |||
21 | 22 | 23 | 24 | 25 | 26 | 27 | |||
28 | 29 | 30 |
我的存档
数据统计
- 访问量: 14959
- 日志数: 21
- 建立时间: 2007-12-03
- 更新时间: 2010-12-21