51Testing软件测试论坛

标题: WinRunner的问题搜集 [打印本页]

作者: rendaoyuan    时间: 2007-5-22 12:13
标题: WinRunner的问题搜集
1.WR是否支持vs.net
根据Mercury的介绍,他们的对.Net的支持转移到QuickTest Pro上了,如果你需要自动化测试.Net程序(不是web的),建议用

QuickTestPro。也就是说wr不支持vs.net开发的程序

2.我对比两个文件file1.txt和file2.txt,文本内容如下
file1.txt 内容如下:
10523 8315 6804 8387 3643 4550 3457 3649

file2.txt内容如下:
190176 155737 117417 145194 65314 81431 64522 63324

代码如下:file_compare("C:\\file1.txt","C:\\file2.txt","save");
为什么每次对比这两个文件结果都是通过的。
答:这个问题的原因在于它在前面的脚本中对文件进行了操作,没有关闭,所以这段代码运行总是通过

3.如何在winRunner中用Windows的API函数
在使用该API函数前需要先加载该函数然后声明API函数,代码如下
load_dll("user32.dll");
extern int PostMessageA(in long, in long, in long, in long);
win_get_info("{class:window, MSW_class:AfxMDIFrame42, label:\"!WinRunner.*\"}", "handle", hWnd);
PostMessageA(hWnd, 16, 0, 0);

请在尝试以上代码的时候,保存脚本,呵呵!
4.怎样处理跟踪键盘操作?
答:下边的代码希望对你有帮助
  function GetKeyStatus(in vKey){
    auto pid, thread_id, win_desc, hWnd, KeyState, win_log_name, win_full_desc, focused_obj_desc;
    win_desc = "{active:1}";     
    if (win_exists(win_desc)==0)     {         
      win_get_desc(win_desc, "", "", "", win_full_desc);
          GUI_map_get_logical_name( win_full_desc, "", win_log_name, "bla");
        win_get_info(win_desc, "handle", hWnd);
        pid = GetWindowThreadProcessId(hWnd, NULL);
        thread_id=GetCurrentThreadId();
          AttachThreadInput(pid,thread_id,TRUE);
        KeyState=GetKeyState (vKey);
        AttachThreadInput(pid,thread_id,FALSE);
        if (KeyState < 0)           
        return(0); # Key is pressed
      else         
        return (1); # Key is not pressed     
    }
    else
          return (-1); # No active window found, so cannot determine key state
  }
.WinRunner如何处理excel?答:其实解决方法有很多,这里列举两种。
  一.利用其他语言特性开发出dll提供给winrunner使用(vb,vc,delphi等)
  二.在其他环境中实现,用winrunner调用
  第一种我在这里不举例子了,第二种我利用vbs往excel中赋值给大家提供一种思路,代码如下:

'vbs中的代码
  Dim ExcelApp
  Dim itemX
  if WScript.Arguments.Count < 2 then
  r = msgbox("Requires 2 arguments", 48, "change_sheet")
  else
  dim fso
  set fso = createobject("scripting.filesystemobject")
  xlBook = fso.GetAbsolutePathName(WScript.Arguments(0))
  xlSheet = WScript.Arguments(1)
  set fso = Nothing
  Set ExcelApp = CreateObject("Excel.Application")
  ExcelApp.Workbooks.Open(xlBook)
  Set itemX = ExcelApp.ActiveWorkbook.Worksheets.Item(xlSheet)
  itemX.Activate
  
  excelApp.ActiveWorkbook.Worksheets(xlSheet).Range("A1").Select
  excelapp.ActiveCell.FormulaR1C1 = "1"
  excelApp.ActiveWorkbook.Worksheets(xlSheet).Range("B1").Select
  excelapp.ActiveCell.FormulaR1C1 = "2"
  excelApp.ActiveWorkbook.Worksheets(xlSheet).Range("c1").Select
  excelapp.ActiveCell.FormulaR1C1 = "3"

  ExcelApp.ActiveWorkbook.Save()
  ExcelApp.ActiveWorkbook.Close(1)
  ExcelApp.Quit()
  
  Set itemX = Nothing
  Set ExcelApp = Nothing

end if

winrunner中的调用代码:
dos_system("wscript \"C:\\excel_sheet.vbs\" \"C:\\SheetBook.xls\" \"Sheet2\"");
  
2.在WinRunner中如何实现得到transaction时间?
答:一般情况下transaction的时间只能在最后结果中得到,如何在脚本得到这个时间呢,下边的代码可以

帮助你:
public transactions[];
function start_my_transaction(in transaction_name)
{
    transactions[transaction_name] = get_time();
    tl_step("Start transaction: \"" & transaction_name & "\"",PASS,"Timestamp: " &

transactions[transaction_name]);
    return (transactions[transaction_name]);
}
function end_my_transaction(in transaction_name)
{
    auto end_time = get_time();
    auto rc;
    if(transactions[transaction_name] == "")
    {
          tl_step("End transaction: \"" & transaction_name & "\"",FAIL,"Transaction was

never started.");
          rc = -1;
    }
    else
          tl_step("End transaction: \"" & transaction_name & "\"",PASS,"Elapsed Time: "

& (rc = end_time - transactions[transaction_name]));
    delete transactions[transaction_name];
    return rc;
}

start_my_transaction("my_transaction");
wait(2);
rc = end_my_transaction("my_transaction");
pause("Elapsed time = " & rc);
北京地区对软件测试感兴趣的朋友可以和我交流:qq:306513768
我的博客:
http://www.51testing.com/?uid/110105
友情链接:www.diytest.net


[ 本帖最后由 rendaoyuan 于 2007-7-4 15:16 编辑 ]
作者: dionysus    时间: 2007-5-22 18:11
不错,顶上去,欢迎大家多来讨论和总结WR
作者: fishy    时间: 2007-5-23 09:27
不错,顶一下
作者: hjk43    时间: 2007-6-4 15:25
不错,顶一下
作者: yluo0898    时间: 2007-6-5 13:09
还行
作者: yluo0898    时间: 2007-6-5 13:15
郁闷啊,又没有分了
作者: yluo0898    时间: 2007-6-5 13:16
谁给我点分数啊!
作者: weiwei555    时间: 2007-6-20 15:01
tl_step("Start transaction: \"" & transaction_name & "\"",PASS,"Timestamp: " &

transactions[transaction_name]);

这个tl_step()函数是你自己写还是WR自带的啊???急,谢谢
我把你这整段代码copy进去WR报识别不了这个函数
作者: Iolia    时间: 2007-6-22 20:42
标题: 回复 #1 rendaoyuan 的帖子
很好阿
作者: 孤独无心    时间: 2007-6-26 16:26
不错,谢谢共享
作者: lantianwei    时间: 2007-6-28 16:02
原帖由 weiwei555 于 2007-6-20 15:01 发表
tl_step("Start transaction: \"" & transaction_name & "\"",PASS,"Timestamp: " &

transactions);
这个tl_step()函数是你自己写还是WR自带的啊???急,谢谢
我把你这整段代码copy进去WR报识别不了 ...

TL——STEP(“STEPNAME”,PASS,“DESCRIPTION”)这个函数是WR自带的,是可以运行的。你再试试看
作者: jialebihaidao    时间: 2007-7-2 08:56
正在学习Winrunner,学习一下!
作者: wwj1283    时间: 2007-7-2 10:38
要是有一本全面的教材就好了!  我刚开始搞测试
作者: dtbyuan    时间: 2007-7-2 15:39
标题: 回复 #1 rendaoyuan 的帖子
不错,这个顶好~~~~~
作者: hugh007    时间: 2007-7-4 09:41
很经典的帖子
作者: hugh007    时间: 2007-7-4 09:42
在这里分不够用啊
作者: jialebihaidao    时间: 2007-7-15 08:42
正在学习winrunner,楼主的帖子对我很有帮助
作者: cssweb    时间: 2007-7-19 10:51
不错,支持
作者: mans    时间: 2007-7-21 12:02
不错,支持
作者: yanghua135    时间: 2007-7-24 09:26
hao 谢谢
作者: chaoweiliang    时间: 2007-7-25 14:07
感谢了楼主,建议加精
作者: jialebihaidao    时间: 2007-7-30 19:42
感觉有点乱
作者: wenmei198552    时间: 2007-8-27 20:16
真是一个学习的 好地方 sdlkfj3
作者: jialebihaidao    时间: 2007-8-30 08:05
国内大部分公司都在做项目,感觉功能测试工具没有用武之地
作者: owenyuan    时间: 2007-9-4 10:04
高深加晦涩
作者: congziok    时间: 2007-9-19 09:57
一起学习!
作者: owenyuan    时间: 2007-9-20 08:22
学习一下
作者: monkeybear    时间: 2007-10-5 19:20
标题: 回复 6# 的帖子
分是哪里来的?怎么能有呢?
作者: cc_test    时间: 2007-10-25 16:37
此文与http://bbs.51testing.com/thread-24900-1-1.html帖子中的内容一样。。。。。。
作者: zkfxysy    时间: 2007-10-29 15:01
谢谢了,下载下来继续学习……………………
作者: michell25    时间: 2007-11-1 16:18
看不懂
作者: 朱火远    时间: 2007-11-5 10:34
标题: 请问各位高手,Winrunner能否在64位XP系统下安装运行吗
关于winrunner的兼容性问题,winrunner能支持的系统有哪些?在Vista ,64位XP,98,95等系统下能安装运行吗?
作者: 静澜    时间: 2007-11-19 18:07
啊?不能用VS.net上啊?不会吧~~~~
作者: huco7    时间: 2007-12-29 09:46
顶一下,这个不错的好文章
作者: muyang327    时间: 2007-12-29 10:41
支持一下,辛苦。
作者: zkfxysy    时间: 2008-1-11 14:25
谢谢了,真不问题太多了,都不知道怎么解决,学习~~~~
作者: lsc025    时间: 2008-1-23 16:19
good
thanks
作者: chlong200    时间: 2008-2-22 15:35
支持下
作者: 3115702    时间: 2008-3-22 17:42
谢谢了
作者: shuishixingyu    时间: 2008-3-25 11:17
不错,要是有例子更好
作者: snoopyzxbc    时间: 2008-3-28 10:55
标题: 回复 8# 的帖子
tl_step()这是个winrunner自带的函数,你可以通过winrunner帮助tsl on line去查看他的具体语法,但你说的无法识别这个函数,我认为是语法格式错误了,所以才会出现你说的那个错误
作者: baihuxilie    时间: 2008-4-3 09:50
标题: 好东西,顶一哈

作者: crayfish    时间: 2008-4-8 11:59
标题: 顶一下
希望楼主继续发布有用的东东
作者: Shannaliu    时间: 2008-4-20 22:31
没太认真看,但是还是得支持一下。
作者: rouman123    时间: 2008-4-21 14:41
ding
作者: tigerking    时间: 2008-4-26 17:41
标题: 不错

作者: xiaoxiaohua    时间: 2008-5-7 23:20
支持!
作者: yuchaohua    时间: 2008-5-28 22:28
想知道怎么写代码
作者: wanghaiping1111    时间: 2008-6-18 16:22

作者: I_hui    时间: 2008-6-26 21:48
正在学关于WR 这个帖子对我很有帮助
作者: lanfish319    时间: 2008-7-17 18:18
最近自学得有些吃力。= =
作者: gjxfreesky    时间: 2008-7-18 14:37
不错,学习
作者: lzan_66    时间: 2008-7-30 14:21
支持一下!!
作者: robingxchen    时间: 2008-8-13 10:51
标题: 回复 1# 的帖子
顶下
作者: welcomeyzj    时间: 2008-8-18 11:00
虽然看不懂里面的代码,也下来学习学习
作者: 小鬼儿    时间: 2008-8-18 14:50
学习
作者: 默泯    时间: 2008-11-4 15:33
我来顶
作者: wjmtxm    时间: 2009-4-21 13:44
标题: 回复 8# 的帖子
t1_step,不是自己写的,而是系统自带的!在

insert -> function -> from function Generator.
作者: lyl419    时间: 2009-5-29 13:44
请问,Winrunner是否都可以测试C/S与B/S架构的软件
作者: 清沙    时间: 2009-6-18 17:31
学习学习,谢谢.
作者: leng_yu    时间: 2009-12-29 17:54
谢谢楼主
作者: June1    时间: 2010-6-9 16:44
能排一下版就更好了
作者: jxjayun156    时间: 2010-9-14 20:16
头痛




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2