前言:如何才能更好发挥WinRunner,实现真正的自动化测试,用好WinRunner要从两方面去做:一是熟悉WinRunner,尤其是要熟悉其 TSL 脚本语言,这一点其实不难,完全可以做到在拿到程序之前就写好测试脚本的。
WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。
浅谈如何学习WinRunner
做了51Testing论坛的WINRUNNER(简称WR)版主也有一段时间了,经常会有网友问起如何学习WR,今天我就简单地根据自己的学习经历来谈谈如何学习WR,因为对于WR我也不是专家,如有不妥之处请大家一一指正,本人万分感谢!
1.要想用好WR首先你的基础知识必须过关,这里的基础知识主要是对WR的基本使用(比如录制,回放,查看结果,编辑对象库等),基本概念(比如检查点,对象库,虚拟对象等),这里我推荐大家WinRunner中文使用说明,这个资料不错,讲的比较详细,但大家不必每章都非常仔细的,粗略的看一遍就OK了,但对象库我还是希望大家对看看,因为在自动化测试很多问题都发生在对象上。这里我要对新手说一点,不要到论坛发一些非常简单的问题,比如“请问WINRUNNER该怎么进行录制啊?”,我觉得这种贴根本没有必要发,因为它既浪费别人的时间。也害了你自己,使你没有解决问题的能力。
2.做完第一步,那就可以开始做点简单的脚本了,比如WR自带的程序,你可以进行录制,回放,增强修改。如果有条件的话,我也建议测个正式点的C/S程序,因为测那个你会发现更多的问题。在这里我主要说几个技巧,a.如果遇到对象不识别,如何进行处理?我的解决思想是先看有没有现成的插件,有的话就进行安装加载(它的优先级最高,因为最方便,有效);如果没有相关插件,再进行对象映射,对于如何映射,我就不详细解释了,大家可以到51的WR板块搜索一下,有很多的;如果映射也没用,则要考虑自己写函数,这里有一个技巧,就是用相对坐标来定位一个对象,或是写键盘模拟函数,当然前提是对象可以被键盘操作到;如果前三个都不行,则只能考虑虚拟对象和自己写插件了,为什么把虚拟对象放在最后是因为它的移植性不是很好,依赖绝对坐标,而自己开发插件相对要求比较高。
3.如果你现在可以比较熟练的运用,那么你可以考虑框架/架构这层了,比如你的测试任务是一个团队合作的,那么你就需要考虑如何使团队可以进行并行的脚本开发,团队协作开发对象库是一个问题;如果你测的是一个比较大的系统,那如果管理维护脚本就是一个问题;还有要说一点,自动化测试的规范标准也非常的重要,我们公司以前有一个项目就是因为这点失败了。
4.学习WR最好的帮助是WR本身自带的HELP,从初级到高级,都非常不错,特别是WR的高级篇,把好多扩展都进行了说明,现在看QTP,就觉得这点做的不够。我相信,如果你把WR的所有的HELP都搞懂了,你那时就是WR的专家了,到时我有问题也请指点我一二,呵呵。。。。还有要说的是,WR自带的一些脚本也非常不错,相信你看了,肯定可以学到好多东西,最后我再推荐一个WR的学习网站,是专门讲WR的。
5.学习要主动,这也是最重要的和最根本的。不要总想着天上掉馅饼,但天上永远不会掉馅饼的!不要什么东西都发贴问下,再留个邮箱放在那,让人给你发过去,也不先搜索一下看有没有相关的资料。每次看到这样的帖子,我都非常气氛,因为首先你给人的感觉就是态度不端正,世界上没有一个人有义务要赶着你去学习什么除了你的亲人老师,真的!所以我每次这样的帖子都不会回,因为我觉得以这样的态度,即使我回了你10贴,100贴,我也帮助不了你,只会害了你。所以最后还是希望大家不管学习什么,都要主动!
以上是本人在以前学习过程中的一些经验和感悟,如大家发现有什么地方说的不对的或有什么建议,欢迎大家提出,本人万分感谢!
浅谈WinRunner同步点
做过功能测试的朋友们应该都有过这样的体验,在做了某一个动作后,需要等待一段时间,直到返回某种结果才继续做下面的动作(例如:从数据库中查询结果,我们要等到结果显示在界面上,才进行下一步的动作)。同步点就是这么一个概念。
在WinRunner中,主要有以下几种类型的同步点:
(1) 将对象或窗口出现某种属性作为同步点;
(2) 将对象或窗口视为图像来作为同步点;
(3) 将程序的某个区域视为图像来作为同步点;
(4) 直接等待指定的时间。
一、同步点:对象或窗口的属性

同步对象或窗口的属性,选择[For Object/Window Property…]

生成的代码:
set_window("测试对话框", 1);l_return = button_wait_info(“初始标题”,“enabled”,1,10); #期望状态可用,超时时间10s通过判断l_return就能知道当前状态,以免出现该按钮在灰掉的情况下被点击而报错。
二、同步点:对象或窗口的图像

同步对象或窗口的图像,选择[For Object/Window Bitmap]

生成的代码:
set_window("测试对话框", 1);l_return = win_wait_bitmap("测试对话框", "Img1", 1); #超时时间10s通过判断l_return就能知道当前状态,等待该窗口界面出现当前的状态。将该窗口界面截取图片后以Img1.bmp存入exp目录下,并在_t_rep.eve中生成了该图片的特征信息。
三、同步点:屏幕区域图像

同步屏幕区域图像,选择[For Screen Area Bitmap]

生成的代码:
set_window("测试对话框", 1);l_return = obj_wait_bitmap(" 测试对话框 ", "Img2", 10, 256, 457, 178, 86); #超时时间10s通过判断l_return就能知道当前状态,等待所选取区域出现当前的状态。
将该窗口界面截取图片后以Img2.bmp存入exp目录下,并在_t_rep.eve中生成了该图片的特征信息。
四、同步点:等待指定的时间
WinRunner 中有一个函数wait(n),该函数的意义就是等待n 秒,时间一到就接着执行后面的脚本。根据实际应用情况,合理使用wait(n)函数,可以增强测试脚本的可用性。wait(n)的同步方法简单,会使得执行过程存在盲目等待,影响执行的效率,但适用于时间规律很强或其他同步方式无法凑效的情况下。
如何才能更好发挥WinRunner,实现真正的自动化测试
用好WinRunner要从两方面去做:
一是熟悉WinRunner,尤其是要熟悉其 TSL 脚本语言,这一点其实不难,完全可以做到在拿到程序之前就写好测试脚本的。
二就是要有有好的测试用例,一个好的测试用例才是一个成功的测试用例。
那么如何实现在拿到产品之前,就能写好一定的测试脚本呢???
(1)事先编写TSL测试脚本,不需要知道GUI对象的分布,只需要知道有些什么GUI对象,需要对其进行什么操作等。
(2)通过录制+少量修改的方式得到的测试脚本只能做比较少的测试工作,通过录制得到脚本是建立在操作的流程正确的基础上的,如果本来就错了的话,录制的脚本即使回放正确,程序仍然是错误的。录制+ 简单的修改不叫自动化测试。
(3)回归测试是自动化功能测试工具的强项,但并不表示自动化测试工具主要就是做这些地,第五代自动化测试工具已经具备了事务处理的能力,W inRunner 7.0已经支持事务处理,这是录制脚本无法达到的,必须人工编写。
(4)我们有很多的测试人员抱怨测试收入低、不受重视等等,为什么会这样?我想,除了大环境的原因外,我们也应该从自身来找找原因。我能够发现多少错误?我对业务知识了解有多少?我对测试领域的了解有多深?我能够为公司的质量管理提供多少改进依据?我的测试流程做得有多好?为什么欧美的测试人员受到重视,收入高?除了大环境以外,众多的专家和对质量保证的贡献也是原因之一吧!
(5)如果希望工作能够非常轻松的话,绝对不要干软件测试这一行!不管是手工测试还是自动化测试,都不是轻松的事,维护测试用例库是应该要做的事情。自动化测试的重点就是前期的测试设计和后期的结果分析,而且前期设计的时间可能是手工测试设计的数倍甚至上十倍,想轻松是不可能的!
(6)有几种情况不要考虑做自动化测试:
a:易用性测试
b:一次性测试
c:立即测试
d:无预期结果的测试
WinRunner脚本录制规范与技巧
WinRunner脚本录制遵循一定的规则后,对于脚本的维护与扩展来说,会达到事半功倍的效果。以下是在使用中总结的一些技巧,供参考:
1、每个脚本的录制都要从灰版状态开始录。
2、录制过程中无需对死机弹出的对话框做处理,主脚本中会有统一处理。
3、脚本中所有的文件路径都不要写死,一定要设变量放在脚本开头,方便以后更改。
4、每个脚本结束后都要关闭你打开的文档,恢复脚本中设置的全局量,关闭所有的浮动面板。不过如果脚本中没有打开浮动面板,脚本结束时就不需要再F2关闭面板了,否则会打开之前关闭的某个面板。
5、脚本录制过程中对浮动面板的操作最好只打开一个面板,操作完成之后关闭,再打开另一个面板。
6、在winrunner开启的情况下,除非你要录制轨迹操作,请不要随意按下“F2”,否则脚本全部变成了轨迹录制。
7、在录制的时候不要使用“ctrl+q”在选取工具和t工具间切换,最好直接用鼠标在工具箱里点击,否则可能会导致机器死机。
8、需要选择菜单项时,不要直接点击菜单,应采用热键的方式录制。
9、使用热键打开菜单项时,例如打开羽化效果对话框,按下Alt+a后,可以松手让这两个按键弹起,再单独按下f,这样录出的脚本就不会多很多<kAlt_L>+或<kAlt_L>-,也就不会导致你删除脚本中的“<kAlt_L>-”后,运行一次脚本后你的Alt键就一直处于按下状态无法“弹起”。
10、常规操作请尽量调用公用脚本。公用脚本不能完成的功能可以与自动测测试组联系,确认不加入公用脚本中后再自行录制。
11、两个快捷键录制之间要等待1S,否则有可能执行速度太快导致第二个快捷键执行不到。
12、如果关闭一个对话框之后,马上执行快捷键,最好之前等待1秒,原因同上。
13、在判断一个窗口是否存在之前一定要等待1S,因为有可能这个窗口还没弹出,你的判断语句就已经执行完毕认为该窗口不存在了,导致该窗口一直停留在现场无法关闭。
14、在选择字体的时候要考虑列表中前4位可能是常用字体的情况,具体脚本中如何处理可以请自动测试组协助
15、一定要写注释,这个很重要,比如说明你按下的快捷键是做什么的,版面拖划了一下是画了一个图元还是选中了一个对象,点了工具箱的某个位置是切换了选取工具还是t工具 等等。
16、相同操作可以合并为一个脚本,例如都是排入图片后输出PDF,就可以合并为一个脚本:排入多个图片,输出PDF。
17、两个连续的操作,如果没有先后之分,最好先录制不易出错的操作。如保存和输出,输出文件容易出错误,那么就先录制保存操作。
18、脚本录制过程中注意缩进的控制,缩进最好使用TAB键,而不是按4个空格。这样可以保证脚本的整洁,方便阅读。
19、整个脚本最好分一下段落,原因同上
20、录制完成后注意删除多余代码,例如类似这样的代码“edit_set_selection ("Edit_3", 0, 0, 0, 2);”就可以删除。另外如果几个相同的“set_window”挨在一起,可以只留下第一个,剩余几个都可以删除。如例1的第2个“set_window ("浮动窗口", 1);”就可以删除。但如果之间还有其他窗口的“set_window”的操作,就不能乱删。如例2中的第2个“set_window ("浮动窗口", 1);”就不能删除。
文章出自:http://qh.itpxw.cn/peixun/software/201838916.html
免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员
用户级别:10
机构名称:IT培训网
联 系 人:罗老师
联系电话:13783581536
联系手机:13783581536
在线客服:
在 线 QQ:
电子邮件:
网站域名:http://www.itpxw.cn
注册时间:2016-07-18 11:07
最后登录:2024-02-20 13:02
Java定义方法的格式是什么?IT培训网小编来告诉大家。所谓方法...
大家在Java教程中会学到关于Java消息推送的知识,那么,Java消息...
常用的Java日期格式转换有哪些?IT培训网小编来告诉大家。 1...
Java创建对象数组的方法是什么?IT培训网小编来告诉大家。Ja...