在AC上开发selenium自动化测试

November 25th, 2010

开发selenium Case

录制一个简单的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方式运行的。 Read the rest of this entry »

AC应用案例:金融系统自动化测试

November 25th, 2010

对于金融业务系统来说,测试案例往往涉及到数据校验,交易确认,业务关联等等,手工测试执行起来比较复杂,更不用提自动化测试的实施了。这也是当前金融系统业界功能自动化测试程度不高的原因之一。

比如某个银行支付系统的转账案交易,手工测试大概的流程如下:

1. 创建Test Account AAccount B,并在各自名下建立相应权限的转账卡

2. 使用Account A登录银行转帐系统,使用名下某一张卡对Account B做转账交易,支付金额为1000元人民币.

3. 查看Account AB的余额,确认A账户减少1000元,B账户上增加1000元。

以上三个步骤从银行业务角度来看是各自独立的三个功能,但在转账场景里,又有密切的联系。步骤2依赖于步骤1的先决运行,步骤3则需要步骤2的转账数据。

使用QTP等工具针对以上案例开发脚本,则会面临棘手的问题,如果把三个功能写在一个脚本里,就会大大降低每个功能脚本的复用性。若开发成三个不同的脚本,那么彼此的关系和数据交互又需要增加额外的开发成本来实现。 Read the rest of this entry »

分布式自动化测试框架Automatjion Center设计介绍

November 25th, 2010

ACTest Job Object Model(测试任务模型)为核心,以Test Job File(测试任务文件)为输入,根据Job type启动不同类型的测试引擎,执行测试任务,最后输出一份基于html的自动化测试报告。如图:

1-1 Automation Center结构示意图 Read the rest of this entry »

幸福(2006年老文)

February 23rd, 2010

2006年写的,今天翻出来,贴出来自省。  

古往今来,天地四海,只要是人,具有独立意识之后,就有了追求幸福的渴望。但幸福是什么?去大街上拦住一百个人问问,没有人会不希望自己幸福,但追求的幸福是什么样,一百个人有一百个答案。 Read the rest of this entry »

两个有意思的话题-“时光如箭”与“飞矢不动”

February 23rd, 2010

“时光如梭”,是形容人对时间的体验和感受,过得非常快,如飞箭一样。而“飞矢不动”则是古希腊哲学家芝诺提出的一个很著名的悖论,“矢”就是箭,射出的箭的运行轨迹在某个时间点必然停留在某个特定的位置上,因此,既然飞箭的运动轨迹是由一个个静止的点组成的,那么也就“飞矢不动了”。

这两个看似不相关的论述是我在春节期间听到妈妈和老同学的闲聊电话而触发联系思考的。 Read the rest of this entry »

《阿凡达》-一部暴力拆迁的纪录片

January 5th, 2010

看过了《阿凡达》,深深被美国大师卡梅隆对中国现实社会的洞察力所震撼了。

  首先以地球人为代表的强大的土地开发商集团,看中了潘多拉星球上的土地,但有一批不懂经济只愿过小农生活的穷鬼土著纳威人占这片土地了几百年 Read the rest of this entry »

使用Java构建稳定可靠的QTP自动化测试

November 29th, 2009

 了解和使用过QTP的朋友都知道,QTP的脚本开发语言都是基于vbscript的,由此所衍生出的lib,automation也都大多采用vbscript的,可以说,qtp的自动化测试是一个vbscript的世界。但vbscript作为脚本语言来说,尤其天生的缺陷,比如出错处理非常薄弱,不适合构建大规模的自动化测试,如测试框架等等。为此我开始将qtp的automation执行转化为java语言,以能够符合框架的大规模开发要求。 Read the rest of this entry »

《测试框架》摘选-9 高质量测试脚本范例

November 23rd, 2009

“不积跬步,无以至千里;不积小流,无以成江海”。
—荀子《劝学》
如果说自动化测试的成功实施是一副壮丽的山水画卷,那么测试脚本/程序的一行行代码就是这幅画卷里一个个彩色元素;如果自动化测试框架是一幢雄伟坚实的大厦,那么函数代码就是其中的一砖一瓦。
因此,对于我们自动化测试开发人员来说,要想成功地构建并实施自动化测试框架,切勿好高骛远,必须要踏踏实实地掌握基本功,从学习开发高质量的测试程序或脚本代码开始,这才是一个训练有素自动化测试开发人员的成长之道。
什么样的代码才算得上是高质量的代码?高质量的代码到底是怎样开发出来的呢?本章将以案例进行介绍并点评。 Read the rest of this entry »

《测试框架》摘选-8 AC框架脚本开发规范

November 23rd, 2009

   衡量一个软件自动化测试团队成熟度的一个很重要标志就是是否建立了测试脚本开发标准规范体系。
1.3.1 自动化测试为什么需要规范
  下面以一个实际场景故事来说明自动化测试开发规范的作用:
场景主人公1:老王,团队自动化测试元老
场景主人公2:老李,团队自动化测试元老
场景主人公3:小李,跟随小李学习自动化测试
场景主人公4:小王,跟随小王学习自动化测试
场景主人公5:小赵,机房管理维护人员 Read the rest of this entry »

《测试框架》摘选-7 UI自动化测试-管理策略

November 23rd, 2009

4. UI框架第四步:自动化测试工件的管理策略


自动化测试的实施和运行的过程中,至少会产生三种工件:
(1)自动化测试案例脚本
(2)自动化测试公共函数库
(3)自动化测试结果报告
一般来说,对于文件有两种管理策略
(1)严格的版本管理策略 Read the rest of this entry »