51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 15129|回复: 16
打印 上一主题 下一主题

使用AutomationCenter管理运行Selenium脚本

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-11-29 09:47:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sunshinelius 于 2010-11-29 09:55 编辑

1. 开发selenium Case
1. 基于录制回放的selenium case

录制一个简单的web计算器功能,exportjunit模式,保存为selJava.java文件,如下:


  1. 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并不能胜任。



2. Selenium 代码从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已经完成了(红色为修改处),如下:


  1. 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"));       }}
复制代码


3. 在测试任务定义文件中添加Selenium case,运行AC,获得测试结果

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


  1. <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,并获得测试报告

4. 使用AC的Ant Engine实现启动selenium serve自动化

我们最常用的是Selenium RC模式,即先启动一个selenium server,然后才能运行selenium脚本。

java启动selenium server的命令行语句如下:

  1. java –jar selenium-server.jar –port 4444 – proxyInjectionMode –log selServer.txt
复制代码

如何把启动 selenium serverjava命令行也集成到AC中来呢?

这里要用到ACAnt Engine

创建基于Ant EngineTestJobTestJob内容遵循Ant语法,如下:

  1. <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是处于启动状态的



  1. <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>
复制代码


5    框架提供的selenium API

pass(String msg): AC汇报当前运行状态,为成功

fail(String msg):向AC汇报当前运行状态,为失败

reportWarning(String msg):向AC汇报当前运行状态,为警告

getDataProperty(String key):获得测试数据

getEnvProperty(String key):获得环境变量及输入数据

getConfProperty(String key):获得配置数据

setOutputValue(String key,String value) 向全局数据通道输出数据



6    Automation 报告

运行TestJob,产生基于html页面的测试报告

总览报告

细分诊断报告

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    2#
    发表于 2011-1-4 22:13:40 | 只看该作者
    关注!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2011-3-1 23:08:27 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2011-3-3 15:51:39 | 只看该作者
    楼主没公开AC的源代码,不方便“测友”之间的交流,可惜!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2011-3-4 13:51:25 | 只看该作者
    呵呵,目前一共7万多行java源代码,今年开始,陆续在本人网站公布。如果在AC上有二次开发的需求,只需发邮件给我,我单独回复。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2011-9-14 13:58:19 | 只看该作者
    关注!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2012-4-17 15:14:07 | 只看该作者
    关注
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2012-7-31 13:26:52 | 只看该作者
    关注
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2013-8-22 10:52:39 | 只看该作者
    顶刘老师的AutomationCenter框架,我10年的时候还参加过您的那次测试沙龙,这本书就是那次我看到的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-12-31 08:59
  • 签到天数: 975 天

    连续签到: 1 天

    [LV.10]测试总司令

    10#
    发表于 2013-11-15 13:43:52 | 只看该作者
    关注
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2015-1-13 14:00
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2014-3-31 18:30:33 | 只看该作者
    从哪里可以下载AC?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2014-4-9 13:44:29 | 只看该作者
    看看不知道说点什么好,还是保持沉默吧.  www.nx89103.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2014-4-17 16:51:10 | 只看该作者
    报告类似Junit或者Testng自己生成的报告,没什么意思
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-1 08:26
  • 签到天数: 113 天

    连续签到: 1 天

    [LV.6]测试旅长

    14#
    发表于 2015-3-24 14:41:48 | 只看该作者
    哎哟,我支持了。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-8-25 13:16
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    15#
    发表于 2015-8-25 08:58:48 | 只看该作者
    你好,请教个问题
    我们公司程序大多是java开发的,主要是支持ie浏览器
    自动化测试选择Selenium
    我电脑上除了安装Selenium Remote Control,Eclipse,还需要安装别的吗?
    像Xpath,Firebug与Selenium Remote Control是什么关系?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-8-25 13:16
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    16#
    发表于 2015-8-25 09:04:05 | 只看该作者
    你好,请教一个问题
    我们公司的程序大多都是java开发的,浏览器主要是用ie
    自动化测试选Selenium,想问我的电脑上除了安装Selenium Remote Control,Eclipse之外,还需安装别的吗?
    Xpath、Firebug与Selenium Remote Control有什么关系?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2020-8-4 11:02
  • 签到天数: 943 天

    连续签到: 1 天

    [LV.10]测试总司令

    17#
    发表于 2015-12-11 18:02:19 | 只看该作者
    值得关注,很好呀!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 21:35 , Processed in 0.085937 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表