• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试中在AC上开发selenium自动化测试

发布: 2011-1-10 09:23 | 作者: 网络转载 | 来源: 领测软件测试网采编 | 查看: 100次 | 进入软件测试论坛讨论

领测软件测试网

软件测试中在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继承SeleneseTestCaseSeleneseTestCase的父类是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 EngineTestJobTestJob内容遵循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) 向全局数据通道输出数据

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 软件测试 时间 资源 自动化


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网