51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3381|回复: 12
打印 上一主题 下一主题

使用WinRunner的技巧(转)---与大家分享,请大家补充

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-10-17 09:24:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
A.分解TestCase  
在大型程序测试中,往往有很多任务是可以分开来Record。同时,如果录制的代码过长的,进行调试是很麻烦的事情,此外如果今后某一部分的程序进行了修改的话,修改和重新录制的工作也是非常痛苦的一件使用。因此我们可以将一个TestCase 进行分解,分解TestCase 可以采用以下几种方式
  1、将任务分段,比如Log、Logout、公共窗口的打开、关闭
  2、错误处理的分类,比如将某一输入项目的各中错误输入分开录制
  3、公共界面的操作函数化统一处理,这种方式主要可以象移动BOSS 的业务受理等不同窗口使用同一子界面的情况,如DELPHI/C++ Builder 中的Frame。
 将不同任务(TestCASE)的分解之后,我们可以使用call 函数及自定义函数机制来调用不同的子Script、函数来完成一个的TestCase
B.通过随机组合实现大规模路径覆盖
  有时候我们需要将一组数据随机组合来进行大量数据测试,如填写某些表单。那么我们有两种办法:一是使用外边工具随机生成大量数据,也可用使用先将各个数据按测试要求生成一小组数据,然后使用rand 方法随机抽取数据来测试伪代码如下
  data a[];
  date b[];
  for (i=0;i<要测试的次数;i++){
                 ca=a[rand()]
                 cb=b[rand()]
                 dosomething;
  }
  使用这种代码的好处是随意调整测试力度,缺点是数据单一,不想外边工具一样生产的数据的多样化。如果想根据数据分段标准动态产生不同数据,应该使用其他编程工具来生产而不应采用这种办法。
C.动态修改chk 文件实行参数化的动态Check
  有时候我们知道在测试过程中的某些数据是动态生产的,比如某些按顺序或随机产生的单号,而我们又往往需要根据这个单号进行一些判断,比如数据库中对应的数据是否完整。
  还有,当我们需要根据输入的某些条件来判断输出的条件是否正确,这个时候WINRUNNER就无能为力了,因为它目前没有提来实现参数化的Check。但是我们可用使用WINRUNNER 的函数及WINNRUNNER 的录制功能,先录制一个使用ULTRAEDIT(或类似工具)手工修改chk 文件的函数。然后将要修改的内容参数化,在主SCRIPT 执行Check 以前先调用该函数。
D. 在Script 里面管理GUI  
    使用WINRUNNER 都知道GUI 文件的重要性,MI 推荐的一种方式是专人来管理GUI文件,整个测试使用同一个/系列GUI 文件。但实际我觉得这很困难的,特别是程序比较的话,光是找出所有的窗口就已经是很痛苦的一件事情。我认为应该首先应该将GUI 与SCRIPT同时存储在同一目录下。
  然后使用GUI_load 在SCRIPT 开始以前就装载GUI,在SCRIPT 开始增加:
   if (GUI_load(".\\login.gui")!=0)
   {
   pause ("Can't load login.gui");
   texit;
   }
  使用Winner 做过复杂测试的可能会问,如果不同GUI 文件中的对象名称相同的话,运行时候就会出问题。因此我们应该在SCRIPT 完毕的时候加入GUI_close(".\\login.gui");
E. 注意恢复测试前的状态  此外,如果我们要连续运行多个测试CASE、就必须考虑将被测试程序恢复测试前的状态,比如我们在测试SCRIPT A 中打开了窗口A,如果下一个TESTCASE 不需要用到窗口A,那么在SCRIPT A 窗口A。这样下一个TESTCASE 才能正常运行。
  如果我们采用采用批处理及CALL 的方式来组织SCRIPT 的话,就应该坚持这样一个原则:“谁打开、谁关闭”,这样才便于管理。
  此外如果对数据库的操作也要根据具体要求考虑恢复。这些操作可以考虑通过录制通过数据库客户端的操作来实现。

[ Last edited by rantisong on 2004-10-17 at 09:26 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2004-10-18 08:40:25 | 只看该作者
ding~~~
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2004-10-18 15:57:28 | 只看该作者
D. 在Script 里面管理GUI  
    使用WINRUNNER 都知道GUI 文件的重要性,MI 推荐的一种方式是专人来管理GUI文件,整个测试使用同一个/系列GUI 文件。但实际我觉得这很困难的,特别是程序比较的话,光是找出所有的窗口就已经是很痛苦的一件事情。我认为应该首先应该将GUI 与SCRIPT同时存储在同一目录下。
  然后使用GUI_load 在SCRIPT 开始以前就装载GUI,在SCRIPT 开始增加:
   if (GUI_load(".\\login.gui")!=0)
   {
   pause ("Can't load login.gui");
   texit;
   }
  使用Winner 做过复杂测试的可能会问,如果不同GUI 文件中的对象名称相同的话,运行时候就会出问题。因此我们应该在SCRIPT 完毕的时候加入GUI_close(".\\login.gui");
我就是常常不加上GUI_close,开始总是有麻烦出现!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2004-10-19 10:46:02 | 只看该作者
GUI_close() 和 GUI_unload()有何区别? 我在程序最后用两者之中的任何一个都可以达到效果吧?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2004-10-19 19:26:28 | 只看该作者
gui_close()是关闭gui_file,它包括gui_unload和close
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2004-10-20 10:02:24 | 只看该作者
哦,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2004-10-22 10:46:46 | 只看该作者
 此外如果对数据库的操作也要根据具体要求考虑恢复。这些操作可以考虑通过录制通过数据库客户端的操作来实现

能否详细说说么?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2004-10-22 10:58:58 | 只看该作者
(转)GUI文件的生成可以有两种:
一种是直接对Application进行学习,接着保存,
另一种是把临时GUI文件保存为永久GUI,但是在保存前应关闭其它的GUI文件,避免文件之间错乱,做到GUI学习Application时做到不重不漏.
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2004-10-22 11:03:05 | 只看该作者
Originally posted by wawzjlp at 2004-10-22 10:58 AM:
(转)GUI文件的生成可以有两种:
一种是直接对Application进行学习,接着保存,
另一种是把临时GUI文件保存为永久GUI,但是在保存前应关闭其它的GUI文件,避免文件之间错乱,做到GUI学习Application时做到不重不漏.

这是很基本的了,你可以去看下GUI窗体下的GUI对象的管理。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2005-11-25 10:33:57 | 只看该作者
谢谢了,哈哈......
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2005-11-25 16:32:06 | 只看该作者
D. 在Script 里面管理GUI  
    使用WINRUNNER 都知道GUI 文件的重要性,MI 推荐的一种方式是专人来管理GUI文件,整个测试使用同一个/系列GUI 文件。

我觉得这个方法很好。我们是把所以的gui都分类,然后放在一个文件夹下,一开始运行test case时候,就把所以的gui load进来。它自己会找到相应的对象。而且很方便。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2005-11-25 19:04:27 | 只看该作者
顶楼主的贴。~
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2007-1-17 13:11:20 | 只看该作者
C.动态修改chk 文件实行参数化的动态Check
  有时候我们知道在测试过程中的某些数据是动态生产的,比如某些按顺序或随机产生的单号,而我们又往往需要根据这个单号进行一些判断,比如数据库中对应的数据是否完整。
  还有,当我们需要根据输入的某些条件来判断输出的条件是否正确,这个时候WINRUNNER就无能为力了,因为它目前没有提来实现参数化的Check。但是我们可用使用WINRUNNER 的函数及WINNRUNNER 的录制功能,先录制一个使用ULTRAEDIT(或类似工具)手工修改chk 文件的函数。然后将要修改的内容参数化,在主SCRIPT 执行Check 以前先调用该函数。


请问这个是怎么操作,能否具体说说呢?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-25 10:50 , Processed in 0.073723 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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