实验简介
在前面的学习中,我们已经利用LoadRunner完成了针对Agileone系统的协议级接口测试。那么本实验主要带大家一起学习一下如何利用LoadRunner完成针对Phpwind论坛的性能测试。
实验目的
(1) 掌握LoadRunner中的关联和关联数组用法。
(2) 掌握LoadRunner中的事务和集合点的用法。
(3) 掌握LoadRunner中的场景设计及指标监控。
实验流程
1. 为Phpwind实现登录脚本
无论我们使用手工插入web_submit_data的方式生成登录脚本,还是使用录制操作生成脚本均可,本实验的演示代码全部使用手工生成。具体的登录代码如下:
// 登录脚本,其中参数userseq的取值为1到100的随机数 |
2. 为发帖关联查找验证码
在LoadRunner中的关联查找,与我们在Java中使用正则表达式进行查找其实本质上是一样的,也是通过设置其左右边界进行。在LoadRunner中使用“web_reg_save_param”函数即可实现关联查找,不过也需要将该函数放在被查找的请求的前面,这一点来说与“web_reg_find”是一样的规则。具体的关联设置窗口如下图所示:
最终生成的代码为:
// 关联查找发帖的验证码 |
3. 实现发帖功能
此处的参数“sequence”为一个10000到99999之间的随机数,具体的代码如下:
web_submit_data("post.php", |
4. 从分分28官网|分分28开奖网中查找随机版块
对于函数“web_reg_save_param”来说,除了关联查找到单个的值以外,如果多个值具有相同的左右边界也是可以正常获取到的。我们以查找分分28官网|分分28开奖网的版块编号以实现随机版块发帖为例,来为大家介绍“关联数组”这一知识点。
(1) 先对Phpwind的分分28官网|分分28开奖网进行分析,确认可以将所有版块编号关联出来的左右边界。通过实验,我们发现,“thread.php?fid=”和“\" target=\"_blank”可以作为版块编号的左右边界。
(2) 对于web_reg_param函数来说,是查找一个值,还是查找所有值,最大的区别在于“Ord”属性的设置,如果我们要查找到所有的值,则需要设置Ord=All。
web_reg_save_param("forumids",
// 将从forumids关联数组中随机取得的值保存到参数fid中 |
(3) 一旦我们设置关联函数中的“Ord=All”,即使只找到一个值,也是一个关联数据,其用法有一些改变。比如我们无法直接根据参数名称“forumids”来取得其值,而必须使用类似“forumids_1”或者“forumids_2”等这种方式来取参数值。我们也可以使用“lr_paramarr_random()”函数来从该参数数组中随机取得一个值,所以此时,发帖的代码可以修改为:
web_submit_data("post.php", |
由于我们的帖子内容是中文,而Phpwind使用的是UTF-8的编码格式,所以在运行上述脚本的时候也需要确保“Convert to/from UTF-8”被勾选。运行后,我们还可以在“Replay”菜单下的“Test Results”中直接查看运行过程的截图: