UML软件工程组织

Web测试工具对比--自动化软件测试二

扩展性评测,大家知道测试软件中,数据至关重要。如登陆测试中,需要验证所有用户是否可以成功登录。用手工测试工作量太大,利用测试工具脚本的强大功能,就可以减少工作量.对任意用户进行登陆测试,脚本从用户文件中读取数据,每次测试人员需要测试新的用户,只要添加用户到用户列表中,就可以自动测试新用户登陆是否成功。

1. Winrunner

设计user.txt文本格式:用户<kTab>密码<kReturn>

如: admin<kTab>jetspeed<kReturn>

脚本如下:

web_browser_invoke(IE,"http://192.168.1.42");
win_max("Browser main Window");
//打开文件

file_open("F:\\user.txt",FO_MODE_READ);
//读取文件数据,填写用户名,密码
while(file_getline("F:\\user.txt",line)==0)
{
win_mouse_click ("html_frame_2", 402, 36);
win_type("html_frame_2",line);
win_mouse_click ("html_frame_2", 566, 33);
}
file_close("F:\\user.txt");

备注:由于winrunner脚本为语言为c,所以注意c语言特性,对于特殊字符需要利用转义字符“\”, file_open("F:\\user.txt",FO_MODE_READ),这里f:\user.txt,就需要加转义字符。

2. Robot

设计user.txt文本格式:用户 密码

如:admin jetspeed

脚本如下:

Sub Main

Dim Result As Integer

Dim Temp as String

dim FileNumber as integer

Dim iPos as integer

Dim UserName as string

Dim pw as string

'Initially Recorded: 2003-12-22 17:07:58

'Script Name: Demo

StartBrowser "http://192.168.1.42", "WindowTag=WEBBrowser"

Window SetContext, "WindowTag=WEBBrowser", ""

Browser NewPage,"HTMLTitle=Dynaweb EPS 2003企业门户服务器",""'

FileNumber = FreeFile

//循环读取文件中数据,登陆

//自读形式 打开文件

Open "f:\user.txt" For Input As #FileNumber

Do While Not EOF(1)

// 读取数据,进行处理

Line Input #FileNumber, Temp

iPos = InStr(1,Temp," ")

//提取用户名

UserName = left(Temp,iPos-1)

//提取密码

pw = Right(Temp,len(Temp)-6)

//找到用户,密码文本框,填写用户名,密码

EditBox Click, "Name=username", "Coords=35,12"

Inputkeys UserName

EditBox Click, "Name=password", "Coords=15,8"

inputkeys pw

//提交数据,退出当前用户

PushButton Click, "Name=submit"

Browser NewPage,"HTMLTitle=Dynaweb EPS 2003企业门户服务器",""

HTMLImage Click, "Index=7", "Coords=11,7"

Loop

Close #FileNumber

//关闭IeWindow CloseWin, "", ""

End Sub

3. quick test

设计user.txt文本格式:用户 密码

如:admin jetspeed

脚本如下:

Dim iPos
Dim UserName
Dim pw
Dim fso
Dim ts
Dim Temp

Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("F:\user.txt",1)

Do While not ts.AtEndOfStream
Temp = ts.ReadLine
iPos = InStr(1)

总结:

1)功能基本实现,测试用例得到扩展

2)winrunner,quick test调试功能不够强大,错误提示不正确,robot错误信息提示简单。错误定位不准确。

3)quick test 有不稳定的地方。脚本开发完毕, 需要重新录制操作过程才能运行。可能跟设置有关系。

4) Quick Test 开发环境可以移植到vb开发环境中,vb中引用对象可以直接开发。

5)自动化测试经常多个脚本一起运行,不需要用户每次手工启动。在三种测试工具都可以达到多个脚本一起运行的目的。

例如:WinRunner中

将录制的脚本开发成函数.

1. 改动设置,file->test properties->test type(compiled module)。

2. public function login_ok()

{

加入脚本

}

Robot

1.录制的脚本加入到lib中

  • 建立library source “demo”文件,整理测试脚本为函数

    Sub Login_Ok()
    加入测试脚本
    End Sub
    保存
  • 建立library head “demo”文件
    Declare Sub login_ok basiclib “demo”
  • 在主脚本中添加头文件 demo

2.直接调用脚本
Callscript “test”

备注:第二种方法一般在所有测试脚本都是针对一个测试工程的时候用,他不能达到脚本共享的目的。

QuickTest

1. 直接在脚本中添加新的action就可以达到连续测试的目的
Treeview中右键添加action copy就可以

稳定性评测:

三种测试工具在整个使用过程winrunner,quicktest测试工具测试环境因素影响比较大,录制和回访过程中出现很多问题。robot受环境影响相对比较小。

综合比较

从易用性,稳定性,扩展性来看WinRunner不太适合web的功能测试,他识别web对象能力比较差,现有脚本函数不能解决web对象元素的识别的问题,需要开发大量的脚本,来支持他对web测试能力,工作量大,对测试人员要求过高。前期投入过大,收益不明显。

 

版权所有:UML软件工程组织