(一) 几个重要概念说明
(二) 飞机订票系统安装
loadrunner 12.55不会自动安装飞机订票系统,要自己手动安装。
https://marketplace.microfocus.com/appdelivery/content/web-tours-sample-application
上面这个地址下载:(没账号的话要先注册一个账号)
https://pan.baidu.com/s/1lG7SyP9mwEKNfbZqC61WQA 百度网盘下载地址
下载并解压后,可以看到这2个文件
1、 运行上面的strawberry-perl-5.10.1.0.msi 文件(我是安装这个之前先解压了WebTours.zip文件,这个文件解压与否应该是不影响安装的,影响的话就先解压WebTours.zip文件再去安装)
2、 解压WebTours.zip文件,然后执行下面的文件启动服务(StartServer.bat)
3、 在浏览器输入http://127.0.0.1:1080/WebTours/就可以访问了
(三) 飞机订票系统---客户信息注册(正式录制、修改脚本前的一些说明)
1、 创建一个新的脚本。(文件--新建脚本和解决方案)
vuser_int Action vuser_end,这三个文件应该依次是初始化(vuser_int)、测试(Action)、结束(vuser_end),例如:打开网页(初始化部分)、注册功能测试(测试部分)、关闭网页(结束部分),当然,我们也可以将脚本全部写在Action中。(但是有多个Action情况下,我们可以只写一遍初始化和结束部分的代码)
2、 录制脚本
3、 这边貌似不管怎么配置都会弹出一个无Internet的提示(一般来说确定有网,浏览器却打不开网页,可能的原因之一是代理服务器设置的问题,这边不太了解loadrunner录制时是直接用本地的网络,还是自己有个代理服务器(运行时设置有个代理服务器的选项,不过设置成不用代理也没什么用)),暂时的想法是只要网页能正常打开、脚本能正常录制就行了,所以我直接选择不再检查Internet访问了。
4、 (帮助文档是这么说明,不过暂时看不出什么区别)如果应用程序使用SSL连接(即协议是https的),需要在录制选项的“网络-映射和筛选”的端口映射中配置正确的SSL版本。这部分先略过了,以后在研究,先用HP的飞机订票软件学习下(这个是HPPT协议的,暂时用不到这个)。
(三) 飞机订票系统---客户信息注册(开始录制脚本、修改脚本)
(已经点击第二步的【开始录制】)开始录制客户信息注册的脚本
注册成功后
录制完成的初始脚本:(注释部分是我加上的,这里说下录制的时候录制选项有2种模式,一种是下面这种简略的,还有一种是比较详细的(录制选项中可以设置))
1 Action()
2 {
3 /*加载指定url*/
4 web_url("WebTours",
5 "URL=http://127.0.0.1:1080/WebTours/",
6 "Resource=0",
7 "RecContentType=text/html",
8 "Referer=",
9 "Snapshot=t8.inf",
10 "Mode=HTML",
11 LAST);
12 /*点击相应的链接*,C语言中 ; 表示语句的结束,就像我们用句号。来表示结束一样/
13 web_link("sign up now",
14 "Text=sign up now",
15 "Snapshot=t9.inf",
16 LAST);
17 /*思考时间(停留时间),这次注册过程中,这个没什么用,可以去掉*/
18 lr_think_time(44);
19
20 /*提交表单*/
21 web_submit_form("login.pl",
22 "Snapshot=t10.inf",
23 ITEMDATA,
24 "Name=username", "Value=lai", ENDITEM,
25 "Name=password", "Value=123", ENDITEM,
26 "Name=passwordConfirm", "Value=123", ENDITEM,
27 "Name=firstName", "Value=lai", ENDITEM,
28 "Name=lastName", "Value=quanhua", ENDITEM,
29 "Name=address1", "Value=贝贝村", ENDITEM,
30 "Name=address2", "Value=51000", ENDITEM,
31 "Name=register.x", "Value=43", ENDITEM,
32 "Name=register.y", "Value=9", ENDITEM,
33 LAST);
34
35 return 0;
36 }
接下来,需要在脚本中
1、设置集合点(同时打开注册页面进行注册)
2、插入事务开始、事务结束
3、设置检查点(检查注册是否成功)
4、参数化注册信息
集合和事务,用工具插入,也可以直接在需要的地方敲上相应的代码。(或者直接鼠标右键-插入)
参数化
插入检查点的方式,按之前的版本,录制过程或快照 --- HTTP数据页/页面视图都可以插入检查点才对,不过目前这个选项是灰色的(不能点击)。看了下帮助文档,12.55的版本中,web_find()函数已经弃用,不知道是不是这个原因导致了添加文本检查点选项是灰色的
我们的目的只是简单的检查下功能的正确性,这里改用web_reg_find()函数了:web_reg_find(Text="",Search="",LAST),简单的说下这2个参数的意思,text指要搜索的文本字符串,search指搜索范围(默认body,HTML代码的BODY 部分),详细可以看帮助文档。在编辑器里输入 web_reg_find(),然后按F1就行了。(这个函数要放到操作的前面,例如我们注册一个账户,这个函数要放到注册操作前,而不是注册操作后面)
参数添加完后,代码中要使用参数的地方,使用这种格式就行了{username}
修改后的代码
1 Action()
2 {
3 /*集合点*/
4 lr_rendezvous("同时打开网页进行注册");
5
6 /*事务开始*/
7 lr_start_transaction("同时注册事务");
8
9 /*加载指定url*/
10 web_url("WebTours",
11 "URL=http://127.0.0.1:1080/WebTours/",
12 "Resource=0",
13 "RecContentType=text/html",
14 "Referer=",
15 "Snapshot=t8.inf",
16 "Mode=HTML",
17 LAST);
18
19 /*点击相应的链接*/
20 web_link("sign up now",
21 "Text=sign up now",
22 "Snapshot=t9.inf",
23 LAST);
24 /*检查表单提交后,是否出现指定的text 值*/
25 web_reg_find("Text={username}",LAST);
26 /*提交表单*/
27 web_submit_form("login.pl",
28 "Snapshot=t10.inf",
29 ITEMDATA,
30 "Name=username", "Value={username}", ENDITEM,
31 "Name=password", "Value={password}", ENDITEM,
32 "Name=passwordConfirm", "Value={passwordCofirm}", ENDITEM,
33 "Name=firstName", "Value={firstname}", ENDITEM,
34 "Name=lastName", "Value={lastname}", ENDITEM,
35 "Name=address1", "Value={address1}", ENDITEM,
36 "Name=address2", "Value={address2}", ENDITEM,
37 "Name=register.x", "Value=43", ENDITEM,
38 "Name=register.y", "Value=9", ENDITEM,
39 LAST);
40
41
42 /*事务结束*/
43 lr_end_transaction("同时注册事务", LR_AUTO);
44
45
46 return 0;
47 }