C4_C语言与LoadRunner脚本_第1页
C4_C语言与LoadRunner脚本_第2页
C4_C语言与LoadRunner脚本_第3页
C4_C语言与LoadRunner脚本_第4页
C4_C语言与LoadRunner脚本_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信赖源于专业 C语言与LoadRunner脚本本课要解决的问题 为什么要学习LoadRunner脚本编程? 认识LoadRunner脚本语言 LoadRunner脚本语言架构的含义 C语言在LoadRunner脚本中的灵活运用 LoadRunner常用函数介绍为什么要学习脚本编程 性能测试工程师需要编程基础吗?答案是肯定的,原因如下:做过性能测试的人都知道,很多情况下,性能测试不能通过简单的脚本录制与回放完成的,经常需要自行编写脚本,如果没有编程基础,是做不到的。对于脚本的调试与定位问题,需要编程基础。对脚本的编程,可以使脚本更完善,更接近真实测试场景。脚本编程也是一个性能工程师能力的体现。认

2、识LoadRunner脚本语言 LR支持多种协议,对于不同协议,脚本使用的语言也不一样,目前LR脚本支持几乎所有主流语言,比如C语言,JAVA,VB,.NET;Web(HTTP/HTML)协议默认使用的就是C语言。 在脚本保存目录,我们可以看到这些文件都是这些文件都是C语言文件语言文件LoadRunner脚本语言架构 Action介绍 就是一个函数包,将用户操作根据类型存放在不同的函数中。当脚本生成的时候,会在对应的目录下生成vuser_init.c,action.c,vuser_end.c 3个文件。这3个文件会对应3个action,每个action是一个组功能的集合,默认的action中包

3、含独立的3个函数为vuser_init(),action(),vuser_end() . action函数的结尾处都有一个return 0 的命令,这是用来退出整个函数的。Return 0 说明该函数正常结束。LoadRunner脚本语言架构 Vuser_init函数: 一般将用户初始化的操作放在这里,如登录操作,分配内存。 Action函数: 是虚拟用户要做的业务。用户的业务操作,也就是测试内容的主体。 Vuser_end函数: 与Vuser_init相对应,Vuser_end做收尾的工作.LoadRunner脚本语言架构 通过运行结果我们可以想象LR的实现是这样的: Int veser_i

4、nit() /*后台隐藏部分*/ int main() /用户填写 /*初始化脚本全局变量和环境,调用veser_init */ Int action() veser_init (); /*调用Action*/ /用户填写 Action(); /*调用veser_end*/ Int veser_init() vuser_end(); return 0; /用户填写 C语言在LR脚本中的灵活运用 数据类型类 型Bit数范 围Unsigned char8bit0255char8bit-128-127Unsigned int32bit0-4294967295Short int16bit-32768-

5、32767double64bit1.7e-3081.7e308int32bit-2147483648-2147483647unsigned long32bit04294967295float32bit3.4e-383.4e38C语言在LR脚本中的灵活运用 表达式语句 表达式语句由表达式加上分号“;”组成Action()int x,y,z;x = 20;y = 30;z = x + y;lr_output_message(%d+%d=%d,x,y,z);return 0;C语言在LR脚本中的灵活运用 函数调用语句 函数调用语句由函数名,实际参数加上分号“;”组成。int sum(a,b) int

6、 x,y,z; x = a; y = b;z = x + y;return z;Action() lr_output_message(sum = %d,sum(20,30);return 0;C语言在LR脚本中的灵活运用 if条件判断语句C语言在LR脚本中的灵活运用 While 循环语句Action() int i =1; int sum =0; while (i【 Toggle Breakpoint 】或者按F9设置断点。 单步跟踪 每执行一条语句,程序就会停下来,可以结合日志,分析脚本。可以通过F10,或者【Vuser】【Run Step by Step】进行单步跟踪。 日志的输出,也是脚

7、本调试的重要方法 LR脚本脚本的调试 Bookmarks设置标签 按CTRL+F2可以在代码行上设置一个标签,通过按F2,可以切换不同的代码行。 代码折叠 录制出来的代码比较长,可以设置折叠,方便查看,鼠标右键,找到菜单expand/collapse,可以设置脚本为折叠模式。 代码日志定位 如果需要找到代码所对应的日志位置,可以在函数上单击右键,选Go to setp in replay log 命令。 快速打开代码目录 单击右键,选open script directory 命令就可以打开代码所在的目录。Vuser常用函数 lr_end_sub_transaction 标记子事务的结束以便进

8、行性能分析 lr_end_transaction_instance 标记事务实例的结束以便进行性能分析 lr_fail_trans_with_error 将打开事务的状态设置为LR_FAIL并发送错误消息 lr_get_trans_instance_duration 获取事务实例的持续时间(由它的句柄指定) lr_get_trans_instance_wasted_time 获取事务实例浪费的时间(由它的句柄指定) lr_get_transaction_duration 获取事务的持续时间(按事务的名称)Vuser常用函数lr_get_transaction_think_time 获取事务的思

9、考时间(按事务的名称)lr_get_transaction_wasted_time 获取事务浪费的时间(按事务的名称)Lr_save_string()函数用于把一个字符串保存到参数中. 函数语法结构如下Int Lr_save_string(const char*param_value,const char*param_name);param_value是将要保存的字符串.param_name是保存的参数名称. 例如:Lr_save_string(“abcdefgh”,”paramstr”);执行后将把字符“abcdefgh”,保存到paramstr中,然后脚本中就可以直接通过paramstr来

10、使用参数paramstrVuser常用函数Lr_save_var用来把字符串中的一部分内容保存为参数,函数语法如下Lr_save_var(const char*param_value,unsigned long const value_len,unsigned long const optins,const char*param_name);Param_value是将要进行截取的字符串.value_len是将要戴取的长度.option是留参数可设为0Param_name是保存的参数名称.例如:lr_save_var(“abcdefgh”,5,0,”paramstr”);执行后将把字符串”abc

11、de”保存到参数paramstr中,然后脚本中就可以直接通过paramstr来使用参数paramstrLr_eval_string函数的使用非常广泛,主要是用来返回参数中的实际内容,也可以返回一个包含参数的字符串的实际内容.语法结构如下Char*lr_eval_string(const char*instring);instrin是参数或包含参数的字符串.例如:lr_save_string(“abcdefgh”,”paramstr”);Lr_output_message(“paramstr=%s”,lr_eval_string(“paramstr”);执行以上两语名后将输出“paramstr=abcdefgh”Vuser常用函数lr_message/将消息发送到Vuser日志和输出窗lr_debug_message/将调试消息发送到输出窗口lr_error_message/将错误消息发送到输出窗口lr_get_debug_message/检索当前的消息类lr_log_message/将输出消息直接发送到output.txt文件,此文件位于Vuser脚本目录中该函数有助于防止输出消息干扰TCP/IP通信lr_outp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论