51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4157|回复: 6
打印 上一主题 下一主题

[原创] Web测试工具对比

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-5-23 10:59:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Web测试工具对比-——我觉得作者写的比较好,共享大家学习


针对xxx(java开发)软件进行测试,对winrunner7.0,Rational Robot,Quick Test 进行评测,评测主要包括易用性,扩展性,稳定性等三方面.

xxx登陆功能是使用最频繁的功能,为了把这部分功能让测试人员从手工测试中解脱出来,现在进行自动化测试实现。


首先,进行录制回放登陆操作目的是检验三种测试工具的易用性(功能前大与否)程度:


操作的步骤 : 启动ie,输入地址,

输入用户名密码,

登陆。



WinRunner 7.0


1. 启动WinRunner 7.0

2. 录制上边的操作步骤

脚本如下

点任务栏,启动ie

# Shell_TrayWnd
set_window ("Shell_TrayWnd", 3);
toolbar_button_press ("ToolbarWindow32_0", "T/ R¨ Internet Explorer mO ‰È Vh "); # Button Number 0;
地址栏输入地址
# Browser Main Window_1
set_window ("Browser Main Window_1", 14);
edit_set ("browser_main_edit_location", "http://192.168.1.42");



输入账号密码

win_type ("html_frame_2","adminjetspeed");
win_mouse_click ("html_frame_2", 566, 33);
win_check_gui("html_frame_2", "list1.ckl", "gui1", 1);

录制完成后的脚本如上,测试回放发现粉色字体受环境影响很大,所以需要对脚本进行优化,改动后的脚本如下



启动ie,并且到http://192.168.1.42的地址

web_browser_invoke(IE,"http://192.168.1.42");



win_mouse_click ("html_frame_2", 402, 36);
win_type ("html_frame_2","adminjetspeed");
win_mouse_click ("html_frame_2", 566, 33);
win_check_gui("html_frame_2", "list1.ckl", "gui1", 1);



替换脚本为一个函数 web_browser_invoke(IE,"http://192.168.1.42")





3.回放 测试通过

替换原因 一.上边粉色部分脚本随机性较大,如果脚本移植到其他测试机器上,由于测试环境的改变(假如任务栏没有快捷方式图标,粉色脚本将无法回放下去),导致无法执行。替换为ie启动函数,不管ie安装在任何地方可以直接启动。

二.进行脚本优化,避免错误,没有修改前的脚本太冗长,修改后脚本减少,功能稳定。





Rational Robot:



1. 启动robot

2. 录制操作

脚本如下:



Sub Main

Dim Result As Integer

Dim Temp as Integer

//启动ie,连接到http://192.168.1.42

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

//让ie窗口获得焦点

Window SetContext, "WindowTag=WEBBrowser", ""

//打开新的页面

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

//点用户名文本框

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

//输入用户名密码

InputKeys "admin{TAB}jetspeed"

// 点登陆

PushButton Click, "Name=submit"

//进入新页面

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

// 点退出连接

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

//关闭ie

Window CloseWin, "", ""



End Sub



3.回放 测试通过



Quick Test 6.5



1. 启动quick test

2. 录制操作 脚本如下



//打开browser对象 object (page是个对象)方法的object(webedit也是个方法)的set方法,意思就是设置文本框username,内容为admin

Browser("Dynaweb EPS").Page("Dynaweb EPS_2").WebEdit("username").Set "admin"

//同上,这回调用的是setsecure方法,作用是将password文本框中的文本进行加密
Browser("Dynaweb EPS").Page("Dynaweb EPS_2").WebEdit("password").SetSecure "3fe6931be2a331101ac0bbbc"

//调用对象webbutton对象的click方法

Browser("Dynaweb EPS").Page("Dynaweb EPS_2").WebButton("v{ _U ").Click

//调用Image对象的click方法,目的退出

Browser("Dynaweb EPS").Page("Dynaweb EPS_3").Image("T_ S y R 梑 g h_ {~ ").Click
'Browser("Dynaweb EPS").Page("Dynaweb EPS_3").Link("2333").Click
Browser("Dynaweb EPS").Page("Dynaweb EPS_4").Image("logout").Click

//等待页面操作完毕
Browser("Dynaweb EPS").Page("Dynaweb EPS_5").Sync

易用性总结:

1. 操作简单但各个脚本都需要进行二次开发

2. 脚本语言的异同:

Winrunner 脚本支持c语言

Robot脚本支持vb脚本(可以扩展脚本语言支持 其他如 perl,java等语言)使测试人员选择度很大

Quick test脚本支持vbScript脚本

一. 学习脚本:robot和quick test为vb语言,容易掌握,winrunner脚本为c语言,掌握有难度,短期内提高对测试人员要求比较高。

二. 调试脚本:robot脚本支持step,animate等调式方式,winrunner和quick test支持step等几种调试方式,相互比较来看robot调试功能强大,比较直观。

三. 测试环境兼容性:

改变测试环境配置,将ie打开后变化窗口大小,关闭,重新运行测试脚本。



Winrunner脚本回放失败,其他两种工具测试回放成功,对比发现由于winrunner脚本依靠坐标来确认对象位置,而robot和quick test是以对象来确认。稳定性上后两种测试工具更加占优。

如:winrunner脚本中函数

win_mouse_click ("html_frame_2", 566, 33)以坐标来记录点击位置,当对象位置改变,脚本将无法执行。

针对winrunner有两种解决对象识别的方法:

1.坐标固定:启动ie后,使ie窗口最大化,窗口坐标得到固定,修改脚本后如下

web_browser_invoke(IE,"http://192.168.1.42");

//让窗口最大化,坐标固定了,这里不考虑机器分辨率的问题
win_max("Browser main Window");

win_mouse_click ("html_frame_2", 402, 36);
win_type ("html_frame_2","adminjetspeed");
win_mouse_click ("html_frame_2", 566, 33);
win_check_gui("html_frame_2", "list1.ckl", "gui1", 1);

录制的脚本基本回放通过(这里没有考虑分辨率的情况,否则脚本开发难度增大。)这种方法不是根本解决方法。

2.让winrunner认识对象

解决方法是开发dll让winrunner引用,windows提供了mshtml对象,借用他可以实现winrunner认识对象。这里我用word的开发环境简单实现这个功能动态添加用户名密码(可以改写编译成dll给winrunner引用)。

主要代码(vb版本):

思路:ie加载网页后,枚举所有元素对象,找到要找的元素,然后赋值。这里是找username和password文本框,把用户名密码添加进去。



Dim hdoc As HTMLDocument

Dim eleColl As IHTMLElementCollection

Dim sElement As IHTMLElement

Dim i As Integer



Set hdoc = WebBrowser1.Document

Set eleColl = hdoc.all



For Each sElement In eleColl



If sElement.isTextEdit Then

If sElement.outerHTML = "" Then

sElement.setAttribute "value", "admin"

End If



If sElement.outerHTML = "" Then

sElement.setAttribute "value", "jetspeed"

End If

End If



Next



同理可以实现winrunner识别网页任何对象
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-5-24 14:18:10 | 只看该作者
虽然这几款可以做功能测试,但是其侧重点是不同的:QTP适合B/S架构,而WINRUNNER和ROBOT适合C/S架构,所以开始之前要知道被测产品的架构,选择合适的测试工具
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-5-24 18:42:51 | 只看该作者
恩 楼上的朋友 你说的很对
我们要针对我们自己系统、自己的软件去选择最合适的工具。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-6-1 17:47:02 | 只看该作者
thanks
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-6-13 14:21:20 | 只看该作者
不错的谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-6-14 09:24:06 | 只看该作者
不错的 收藏
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-10-18 17:33:09 | 只看该作者
恩 谢谢 兄弟们来捧场!!!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-25 12:15 , Processed in 0.093108 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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