LR脚本用户自定义C语言函数
LR脚本实战:用户自定义C语言函数
Loadrunner可以使用标准C语言的函数,因此我们可以在脚本中编写自己的函数用于调用,把脚本结构化,更好的进行重用。
先看一个例子:
Action()
{
int i,j;
j = 1;
for (i=0;i<10;i++)
{
lr_message("i+j=%d",sum(i,j));
j++;
}
return 0;
}
int sum(int a,int b)//简单的求和函数
{
return a+b;
}
例子说明:
我写了一个很简单的函数sum,求2个整数的和;
1、函数实现可以放在lr脚本的任意位置(函数的作用域);
例如action、vuser_init、vuser_end这些脚本的主函数外,则不需要考虑函数的作用域;在任意地方都可以调用。
如果放到Action()、vuser_init()、vuser_end()这些函数体内,则只有本函数体内才可以调用。
例如:
Action()
{
int sum(int a,int b)//简单的求和函数
{
return a+b;
} int i,j;
j = 1;
for (i=0;i<10;i++)
{
lr_message("i+j=%d",sum(i,j));
j++;
}
return 0;
}
上例则只有action内部可以调用sum函数。 2、如果想跳出函数,使用return 0或break即可 再看一个稍微复杂点的例子:
Action()
{
int aa[20];
CheckChar("AaBbCc001 1 1",aa);
lr_message("字符串长度为:%d",aa[0]);
lr_message ("统计-大写字符:%d",aa[1]);
lr_message ("统计-小写字符:%d",aa[2]);
lr_message ("统计-数字字符:%d",aa[3]);
lr_message ("统计-空格字符:%d",aa[4]);
return 0;
} void CheckChar(char ch[],int a[]) //统计函数,分别统计字符串长度;大写、小写、数字和空格的个数,返回整形保存在数组里
{
int i;
for(i=0;i<=3;i++)
a[i]=0;
a[0] = strlen(ch);//获取字符串长度
for(i=0;i<a[0];i++)
{
if(ch[i]>='A' && ch[i]<='Z') //如果是大写字符
a[1]++;
else if(ch[i]>='a' && ch[i]<='z') //如果是小写字符
a[2]++;
else if(ch[i]>='0' && ch[i]<='9') //如果是数字
a[3]++;
else if(ch[i]==' ') //如果是空格
a[4]++;
}
}
写了一个检查字符串成分的函数,只能检查出字符串长度,大写、小写、数字和空格的个数。 由此可见,lr中使用C函数还是比较灵活。 再附上一个指针相关的函数调用: Action() { int *i, *j; // *i = 100; int a=50, b=50; i = &a; j = &b; lr_message("i+j=%d",sum(i,j)); return 0; } int sum(int *a,int *b)//简单的求和函数 { return *a + *b; }
LR脚本用户自定义C语言函数的更多相关文章
- 彻底抛弃脚本录制,LR脚本之使用web_custom_request函数自定义
原文 http://www.cnblogs.com/Bonnie83/p/3525200.html 初学性能测试时候,第一步必学脚本录制,但一路下来各种录制失败.回放脚本失败的问题层出不穷,究其原因 ...
- 彻底抛弃脚本录制,LR脚本之使用web_custom_request函数自定义http请求
初学性能测试时候,第一步必学脚本录制,但一路下来各种录制失败.回放脚本失败的问题层出不穷,究其原因一是LR本身存在对测试环境的兼容性问题导致录制失败,更深层次的原因是录制者不清楚LR录制脚本的原理,或 ...
- LR脚本示例之常用函数
1.变量和参数的设置 //将IP地址和端口放入到参数中lr_save_string("127.0.0.1:1080","ip"); //退出脚本建议使用lr_e ...
- lr参数与C语言函数参数的区别
C变量不能再lr函数中使用: c变量必须定义在lr函数之前: LR参数可以在LR函数中直接当做字符串使用. LR参数是lr自己封装的一个钟对象, LR参数的表达方式:{ParamName}
- LoadRunner 脚本开发和常用函数
开发性能测试脚本原则.简单 正确 高效 在lr中,脚本运行是解释执行的.所以在运行时,需要先编译. 局部变量和全局变量 1.在init.action.end中定义的变量就是局部变量 2.在global ...
- 易捷支付完整业务流程的lr脚本编写
业务流程:1.注册2.登录3.重置支付密码4.下订单5.支付订单6.查看订单列表 通用md5.h代码如下: #ifndef MD5_H #define MD5_H #ifdef __alpha typ ...
- 在LoadRunner中转换字符串大小写的C语言函数
在LoadRunner中转换字符串大小写的C语言函数 . loadrunner语言ccharacterstringaction 封装ConvertToXXX函数: //ConvertToUpper f ...
- LR脚本录制方式说明
1.LR脚本录制方式说明1)HTML-based script基于HTML的脚本从内存中读取并下载资源,较少的关联处理,可以加入图片检查,回放时需要解析返回的信息a-基于用户行为的方式 web_lin ...
- 【笔记】LR录制方式和常用函数
本文为本人复习LR时,笔记整理.以备后续查阅. 注意:录制脚本时,选择不同的协议下录制时设置选项也是不相同的,我们这里介绍的是基于协议web(http/html)录制选项设置. 对于web(http/ ...
随机推荐
- ASP.NET基础学习未整理随笔
利用新建网站添加的项目可以改完代码直接刷新就行 提交到服务程序的表单一定要具有name.<input type="hidden"value="true"n ...
- linux查看文件相关指令
以下内容整理自以下两篇文章: http://www.cnblogs.com/xilifeng/archive/2012/10/13/2722596.html Linux 查看文件内容的命令 http: ...
- 汕头市队赛SRM 20 T3 灵魂觉醒
背景 自从芽衣.布洛妮娅相继灵魂觉醒之后,琪亚娜坐不住了.自己可是第一个入驻休伯利安号的啊!于是她打算去找德丽莎帮忙,为她安排了灵魂觉醒的相关课程. 第一天,第一节课. “实现灵魂觉醒之前,你需要先将 ...
- 【BZOJ】3971 [WF2013]Матрёшка
[算法]区间DP [题解] 参考写法:BZOJ 3971 Матрёшка 解题报告 第二个DP可以预处理mex优化到O(nM+n2),不过我懒…… 第一个DP有另一种写法:不预处理,在一个n2取出来 ...
- 发福利喽稀疏FFT
附介绍: 四位来自麻省理工学院的研究人员蒂娜·卡塔比(Dina Katabi).海塞姆·哈桑(Haitham Hassanieh).比欧特·因迪克(Piotr Indyk)和埃里克·普里斯(Eric ...
- MSSQL数据库 事务隔离级别
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted .Read committed .Repeatable read .Serializable ,这四个级别可以逐个解 脏读 ...
- bzoj 1406 数论
首先问题的意思就是在找出n以内的所有x^2%n=1的数,那么我们可以得到(x+1)(x-1)=y*n,那么我们知道n|(x+1)(x-1),我们设n=a*b,那么我们对于任意的a,我们满足n%a==0 ...
- input file 文件上传,js控制上传文件的大小和格式
文件上传一般是用jquery的uploadify,比较好用.后面会出文章介绍uploadify这个插件. 但是,有时候为了偷懒,直接就用input 的file进行文件和图片等的上传,input fil ...
- 解决不走onActivityResult方法
最近在开发公司项目,在使用startActivityForResult关联俩个Activity中,发现A跳转到B,B设置setResult之后,A没有执行onActivityResult,查找一下,发 ...
- RecycleView Bug:java.lang.IndexOutOfBoundsException: Inconsistency detected.
今天使用RecyclerView时,上下两个RecyclerView,在实现下拉刷新时,报错: java.lang.IndexOutOfBoundsException: Inconsistency d ...