51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5379|回复: 10
打印 上一主题 下一主题

[原创] 关于基于C Vuser的LoadRunner脚本

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-7-8 17:02:29 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
LoadRunner支持基于C Vuser的脚本,但是我在使用过程中,发现一个问题:脚本中无法#include自己的头文件。
  如果只是写一些简单的c代码,是没有问题的,包括lr_load_dll你自己的dll,然后调用dll里提供的api做各种操作。但是实际情况往往要复杂,比如:你想调用被测系统提供的dll,这个dll有一个头文件,需要包含这个.h文件,而这个.h文件里,可能又#include了其他头文件,这个时候,LR编辑脚本的时候就会报错,输出诸如这样的错误信息:xxx.h: No such file or directory。
  不知道各位朋友是怎么处理这种情况的?有什么解决的方法吗?我一直没有找到可行的办法。如果是这种情况,LoadRunner支持基于C Vuser脚本这个功能,等于没有任何实际意义。

[ 本帖最后由 qiuyangzh 于 2009-7-8 17:05 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

11#
发表于 2009-7-13 12:24:35 | 只看该作者
网上说
LoadRunner 只支持ANSI C:
The C Interpreter used by LoadRunner accepts the ANSI C language. No
Microsoft extensions to ANSI C are supported.
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2009-7-13 10:03:59 | 只看该作者
谢谢shanxi的多次回复,非常感谢!
我现在使用的办法就是自己把头文件处理一遍再提供给LR使用,我发这个帖子是想知道是不是有更好的办法,因为每次这样修改太麻烦了,而且如果遇到一些复杂的头文件,可能就没有办法处理。
难道LR对C就这样支持?我非常费解。我原来查过一些资料,说遇到这种情况可以把头文件发给LR公司,他们给处理一下,估计也是这样的过程吧。不知道LR公司对这个问题是否有公开的资料。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-7-10 11:25:30 | 只看该作者

嘿 7楼的

我上楼给的方法你用的怎么样了?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-7-9 16:12:49 | 只看该作者

回复 7# 的帖子

也不明白你上面无语啥意思,好人做到底吧

试试这里面(http://motevich.blogspot.com/200 ... runner-regular.html)的:
Сomment out the include for stdlib.h file in:
C:\pcre\include\pcre.h
C:\pcre\include\pcreposix.h
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-7-9 15:34:04 | 只看该作者
我无语了
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-7-9 10:54:32 | 只看该作者

回复 5# 的帖子

你可以去msdn查阅 pragma 宏
同样的效果
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-7-9 09:41:43 | 只看该作者
谢谢shanxi的解释。
目前LR报告的这个问题,我确定不是lib文件的问题,而且LR也没有让你设置lib文件的地方。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-7-8 18:18:58 | 只看该作者
原帖由 qiuyangzh 于 2009-7-8 17:46 发表
你说的是静态编译连接的方式,是需要加入lib文件。


不是

我最早碰到这个情况是进行directx开发的时候,当时安装了directx sdk,引入头文件仍然找不到,最后在项目include里面添加对应*.lib才成功

还有一个例子,就是进行socket编程时,需要引入ws2_32.lib(名字可能有误)才能编程成功:

由于使用了WinSock库中的函数,所以需要添加相应的.lib文件:ws2_32.lib。打开VS2008 SP1项目属性,在Configuration Properties下选Linker->Input,在Additional Dependencies里添加该文件。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-7-8 17:46:43 | 只看该作者
谢谢shanxi。
你说的是静态编译连接的方式,是需要加入lib文件。
但是动态加载dll,不需要lib文件,只要包含了头文件,加载后调用dll里的接口即可。
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2009-7-8 17:18:23 | 只看该作者

回复 1# 的帖子

VS编写C++时 有时候需要把*.lib 包含进整个项目中
如果不包括,即使加了头文件也通不过编译
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-24 09:50 , Processed in 0.079357 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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