LoadRunner之脚本编写
作者:网络转载 发布时间:[ 2016/11/30 14:07:05 ] 推荐标签:性能测试工具 LoadRunner
性能测试工程师要懂代码么?答案是必须的。好多测试员认为在loadrunner中编写脚本很难很牛X ,主要是大多测试人员并未做过开发工作,大学的那点程序基础也忘记的差不多了。还有非计算机专业出身的测试员,所以对代码望都比较望而生畏。
好多人认为loadrunner只支持C语言(包括我之前也一直这么认为),因为loadrunner默认的脚本是C语言的,其实它支持目前所有主流的语言,如:Java User、VB User、VB script User 、Javascript User、Mmicrosoft .NET等,总有一款适合你的吧,起码C语言是必修课吧。
对于编写loadrunner脚本的态度
现在有一辆自行车放在你的面前,你为显示自己体力很好,每天走路去上班。我骑车只要半小时,而你走路却要2小时,我们的目的是一样的,你是为了让人说你牛呢,还是让人说你傻呢?当然自行车不是的,比如,上班的地点在山上,自行车跟本上不去,自然走路是的选择了。
所以,对于loadrunner脚本,能录制的部分录制改,不能录制的手写,但前提是我们要会写脚本。
认识loadrunner脚本
Loadrunner自带了一个小飞机订票系统
我们先启动 Start Web server 服务,如果启动成功,桌面右下角会有一个绿色的X ,然后打开浏览器访问
http://127.0.0.1:1080/WebTours/ 下面是我们loadrunner录制一个登录过程。
Action()
{
web_url("WebTours",
"URL=http://127.0.0.1:1080/WebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
lr_rendezvous("集合点");
lr_start_transaction("登陆时间");
web_submit_form("login.pl",
"Snapshot=t2.inf",
ITEMDATA,
"Name=username", "Value=test1", ENDITEM,
"Name=password", "Value=123456", ENDITEM,
"Name=login.x", "Value=59", ENDITEM,
"Name=login.y", "Value=5", ENDITEM,
LAST);
lr_end_sub_transaction("登陆时间",LR_ABORT);
return 0;
}
上面的代码中有大括号“{}”,返回函数“ return ”,如果你有编程基础的不会说对于上面的代码一点都看不懂。只是上面的脚本没有使用我们平时用到的东西,如定义常量、变量,分支(if....else if....)、循环语句(for...)
下面我们动手写个小程序,一个乘法运算,求员工工资的总合。
#define COUNT 100
#define SALARY 4000
Action()
{
int total;
total = COUNT * SALARY;
lr_output_message("100人合计薪资支出为:%d",total);
return 0 ;
}
#define COUNT 100
#define SALARY 4000 定义一个全局常量。
lr_output_message 输出语句,这个和我们所学的C 语言不一样,在C中我们会用println 来输入结果。
运行结果:
..........
Starting iteration 1.
Starting action Action.
Action.c(9): 100人合计薪资支出为:400000 ----这里将运行结果打印输出
Ending action Action.
Ending iteration 1.
..........
一个有意思的小程序
当然了,上面的程序太鸡肋了,我只是想表达,loadrunner 也可以运行我们上学时学的那些普通的小程序。他们是一样一样的。
下面看个比较有意思的小程序,通过随即数和分支(选择)语句switch来完成
Action()
{
int randomnumber;
randomnumber = rand() % 3+1;
switch (randomnumber) {
case 1:
{
lr_rendezvous("访问百度集合点");
web_url("www.baidu.com",
"URL=http://www.baidu.com/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t12.inf",
"Mode=HTML",
EXTRARES,
"Url=http://s1.bdstatic.com/r/www/img/i-1.0.0.png", ENDITEM,
"Url=/favicon.ico", "Referer=", ENDITEM,
"Url=http://s1.bdstatic.com/r/www/img/bg-1.0.0.gif", ENDITEM,
LAST);
return 0;
}
case 2:
{
lr_rendezvous("访问谷歌集合点");
web_url("www.google.com.hk",
"URL=http://www.google.com.hk/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t10.inf",
"Mode=HTML",
EXTRARES,
"Url=http://ssl.gstatic.com/gb/images/b_8d5afc09.png", ENDITEM,
"Url=/images/srpr/logo3w.png", ENDITEM,
"Url=/extern_chrome/749e1ce3c3e5f171.js", ENDITEM,
"Url=/images/swxa.gif", ENDITEM,
"Url=/favicon.ico", "Referer=", ENDITEM,
"Url=http://ssl.gstatic.com/gb/js/sem_0e1289051da7e9e3697c2025d9490acd.js", ENDITEM,
"Url=http://www.google.com/textinputassistant/tia.png", ENDITEM,
LAST);
return 0;
}
case 3:
{
lr_rendezvous("访问有道集合点");
web_url("www.youdao.com",
"URL=http://www.youdao.com/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t7.inf",
"Mode=HTML",
EXTRARES,
"Url=http://shared.ydstatic.com/oxo/p/pic.gif", ENDITEM,
"Url=http://shared.ydstatic.com/oxo/p/logo.png?1", ENDITEM,
"Url=http://shared.ydstatic.com/oxo/p/nv_line.gif", ENDITEM,
"Url=http://shared.ydstatic.com/r/2.0/p/pic.gif", ENDITEM,
LAST);
return 0;
}
}
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11