软件性能测试_Loadrunner正则表达式关联
来源:互联网 发布:手机淘宝如何注册店铺 编辑:程序博客网 时间:2024/05/29 04:15
一.让我们先看看什么是正则表达式
下面一段出自百度百科
正则表达式,又称规则表达式。(在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,Perl中就内建了一个功能强大的正则表达式引擎,还有java语言自带的。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
我们在安装Loadrunner后,在【开始-所以程序】中会有一个Strawberry Perl目录,LR很多函数都是基于Perl引擎
二.用在何处
今天我们的主角就是函数web_reg_save_param_regexp,此函数是LoadRunner11更新LoadRunner11_Path3.msp补丁后新加入的(要是在F1帮助文档中没有查出此函数就去打补丁吧),那么我们什么时候用到此函数呢?熟悉关联的朋友可能知道,其实所谓“关联”就是让在执行脚本的时候,对页面不同之处参数化,执行到此处时全部用参数替代就可以运行成功。以前的老的关联函数都是要取左右边界的,找起来稍麻烦,要是左右边界是动态的,返回的ID的长度也不定,那么如何去取得,老的方法是用strtok()进行字符切割,现在我们有了新的正则表达式的方式关联,那么就可以淘汰掉之前的方法了,这就是此函数的用武之地。
三.如何用
知道了用在何处之后,就是怎么用的问题了。我们在写脚本时,在Action中右击鼠标inset-newstep ,找到web_reg_save_param_regexp,点击【OK】
其中关键就是Regular Expression的写法,记住了:需要用()圆括号标记
如接下来的演示中的部分脚本如下:
web_reg_save_param_regexp(
“ParamName=test1”,
“RegExp=userSession value=(.*)>”,
“Ordinal=1”,
SEARCH_FILTERS,
LAST);
表示以“userSession value=”开头,“>”结尾,中间的任何内容都关联保存到参数test1中,
(C中定义了一些字母前加”\”来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思,所以要是有换行\r回车等等)。
四.实例演示
我们以LR自带的Web Tours进行演示
前提:1. Web Tours服务启动;
2.有账号;
步骤:
1. 必要设置,【开始-所有程序】中点击如图,打开Web Tours网站
点击页面中的administration进行必要如下:
勾选第三项,后点击页面下的【UPDATE】更新按钮使设置生效:
然后关闭IE开始我们的录制“登陆-退出”脚本
2. 新建脚本
① 我们选择Web (HTTP/HTML)协议录制,确定后弹出如图,填入如图信息录制:
② 点击【Option】进行如图两项的设置,这里我们用HTML形式录制,全部放在Ation里面:
③ 设置完毕后点击【OK】,开始脚本录制,录制很简单的两步:输入用户名密码登陆,然后退出:
④ .然后点击停止按钮结束录制,到此录制工作完毕。
脚本如下:
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_think_time(48);
web_submit_data(“login.pl”,
“Action=http://127.0.0.1:1080/WebTours/login.pl“,
“Method=POST”,
“RecContentType=text/html”,
“Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home“,
“Snapshot=t2.inf”,
“Mode=HTML”,
ITEMDATA,
“Name=userSession”, “Value=120898.059538275zcVizQDpQDHfDHDVcpVzDzcf”, ENDITEM,
“Name=username”, “Value=zmy”, ENDITEM,
“Name=password”, “Value=123456”, ENDITEM,
“Name=JSFormSubmit”, “Value=on”, ENDITEM,
“Name=login.x”, “Value=43”, ENDITEM,
“Name=login.y”, “Value=12”, ENDITEM,
LAST);
lr_think_time(25);
web_image(“SignOff Button”,
“Alt=SignOff Button”,
“Snapshot=t3.inf”,
LAST);
return 0;
}
- 编译-回放,发现报错
然后我们就要查找为什么录制了,但是回放不成功的原因了,点击工具栏或者菜单中如下图Scan Script Correlations扫描对比
我们点击界面下方的“Show Differences”比较后,我们可以查出不成功的原因了,见图:Response Body中的中userSession value值每执行一次都改变,导致回放时失败,那么我们下一步就是对其关联参数化,回放的时候,到了这个值我们就直接用参数代替就可以通过了
关联
① 在脚本最前面我们插入函数,可以手写,也可以依照前面的步骤插入,完毕后整个脚本如下,以参数test1替代“userSession value=”和“>”直接的所有字符串
web_reg_save_param_regexp(
“ParamName=test1”,
“RegExp=userSession value=(.*)>”,
“Ordinal=1”,
SEARCH_FILTERS,
LAST);
② 我们把脚本中相应的含userSession值的地方换成参数test1,整个脚本如下:
Action()
{
web_reg_save_param_regexp(
“ParamName=test1”,
“RegExp=userSession value=(.*)>”,
“Ordinal=1”,
SEARCH_FILTERS,
LAST);
web_url(“WebTours”,
“URL=http://127.0.0.1:1080/WebTours/“,
“Resource=0”,
“RecContentType=text/html”,
“Referer=”,
“Snapshot=t1.inf”,
“Mode=HTML”,
LAST);
lr_think_time(48);web_submit_data("login.pl", "Action=http://127.0.0.1:1080/WebTours/login.pl", "Method=POST", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", "Snapshot=t2.inf", "Mode=HTML", ITEMDATA, "Name=userSession", "Value={test1}", ENDITEM, "Name=username", "Value=zmy", ENDITEM, "Name=password", "Value=123456", ENDITEM, "Name=JSFormSubmit", "Value=on", ENDITEM, "Name=login.x", "Value=43", ENDITEM, "Name=login.y", "Value=12", ENDITEM, LAST);lr_think_time(25);web_image("SignOff Button", "Alt=SignOff Button", "Snapshot=t3.inf", LAST);return 0;
}
然后再次运行脚本就不会报错了O(∩_∩)O
- 软件性能测试_Loadrunner正则表达式关联
- 软件性能测试_Loadrunner测试wsdl接口
- 软件性能测试_loadrunner之web_custom_request应用示例
- 性能自动化测试_LoadRunner流程
- 软件性能测试_loadrunner之web_custom_request函数做get接口测试
- 正则表达式在性能测试中的应用
- 正则表达式在性能测试中的应用
- 正则表达式在性能测试中的应用
- LoadRunner(6)_LoadRunner测试步骤
- Loadrunner性能测试-关联
- 一次简单的js正则表达式的性能测试
- 一次简单的js正则表达式的性能测试
- 正则表达式在性能测试中的应用(续)
- 正则表达式性能提高
- 正则表达式测试工具
- 正则表达式在线测试
- 正则表达式测试程序
- 测试正则表达式(转帖)
- HTTP协议的头信息详解
- weblogic comet4j java.lang.ClassNotFoundException: org.apache.catalina.comet.CometProcessor
- 单元测试/自动化测试
- HEX文件和BIN文件格式的区别
- 19.Unity3D商业游戏源码研究-变身吧主公-战斗-MainPlayerStateHit
- 软件性能测试_Loadrunner正则表达式关联
- TextControl 单位
- 详解BarTender数据源操作列表
- POJ
- Spring Boot 学习3--热部署
- 20.Unity3D商业游戏源码研究-变身吧主公-战斗-MainPlayerStateIdle
- [Ruby On Rails]Rails中的ActiveSupport::Callbacks的使用
- 关于HTTP协议,一篇就够了
- 【JavaScript】第一个Demo和一个问题