分分28官网|分分28开奖网

实验:使用LoadRunner实现Phpwind的性能测试
作者:强官涛   类型:测试开发    类别:实验   日期:2018-02-02    阅读:3213 次   消耗积分:3 分

验简介


在前面的学习中,我们已经利用LoadRunner完成了针对Agileone系统的协议级接口测试。那么本实验主要带大家一起学习一下如何利用LoadRunner完成针对Phpwind论坛的性能测试。

 

实验目的


(1) 掌握LoadRunner中的关联和关联数组用法。

(2) 掌握LoadRunner中的事务和集合点的用法。

(3) 掌握LoadRunner中的场景设计及指标监控。

 

实验流程


1. 为Phpwind实现登录脚本

无论我们使用手工插入web_submit_data的方式生成登录脚本,还是使用录制操作生成脚本均可,本实验的演示代码全部使用手工生成。具体的登录代码如下:


// 登录脚本,其中参数userseq的取值为1到100的随机数
web_submit_data("web_submit_data",
    "Action=http://localhost/phpwind/login.php?",
    "Method=POST",
    "TargetFrame=",
    "Referer=",
    ITEMDATA,
    "Name=forward", "Value=", ENDITEM, 
    "Name=jumpurl", "Value=http://localhost/phpwind/", ENDITEM, 
    "Name=step", "Value=2", ENDITEM, 
    "Name=lgt", "Value=0", ENDITEM, 
    "Name=pwuser", "Value=testuser_{userseq}", ENDITEM, 
    "Name=pwpwd", "Value=123456", ENDITEM, 
    "Name=hideid", "Value=0", ENDITEM, 
    "Name=cktime", "Value=0", ENDITEM,
    LAST);

 

2. 为发帖关联查找验证码


在LoadRunner中的关联查找,与我们在Java中使用正则表达式进行查找其实本质上是一样的,也是通过设置其左右边界进行。在LoadRunner中使用“web_reg_save_param”函数即可实现关联查找,不过也需要将该函数放在被查找的请求的前面,这一点来说与“web_reg_find”是一样的规则。具体的关联设置窗口如下图所示:


20180202_170829_534.png 

 

最终生成的代码为:


// 关联查找发帖的验证码
web_reg_save_param("verifycode",
    "LB=verify\" value=\"",
    "RB=\" />",
    "Ord=1",
    "NotFound=ERROR",
    LAST);

web_url("web_url",
    "URL=http://localhost/phpwind/post.php?fid=2",
    "TargetFrame=",
    "Resource=0",
    "Referer=",
    LAST);

 

3. 实现发帖功能


此处的参数“sequence”为一个10000到99999之间的随机数,具体的代码如下:


web_submit_data("post.php",
    "Action=http://localhost/phpwind/post.php?",
    "Method=POST",
    "EncType=multipart/form-data",
    "TargetFrame=",
    "RecContentType=text/html",
    "Referer=",
    "Mode=HTML",
    ITEMDATA,
    "Name=magicname", "Value=", ENDITEM,
    "Name=magicid", "Value=", ENDITEM,
    "Name=verify", "Value={verifycode}", ENDITEM,
    "Name=atc_title", "Value=这是帖子的标题-{sequence}", ENDITEM,
    "Name=atc_iconid", "Value=0", ENDITEM,
    "Name=atc_content", "Value=这是帖子的内容-{sequence}", ENDITEM,
    "Name=atc_autourl", "Value=1", ENDITEM,
    "Name=atc_usesign", "Value=1", ENDITEM,
    "Name=atc_convert", "Value=1", ENDITEM,
    "Name=digest", "Value=0", ENDITEM,
    "Name=topped", "Value=0", ENDITEM,
    "Name=atc_rvrc", "Value=0", ENDITEM,
    "Name=atc_enhidetype", "Value=rvrc", ENDITEM,
    "Name=atc_money", "Value=0", ENDITEM,
    "Name=atc_credittype", "Value=money", ENDITEM,
    "Name=atc_desc1", "Value=", ENDITEM,
    "Name=attachment_1", "Value=", ENDITEM,
    "Name=att_special1", "Value=0", ENDITEM,
    "Name=att_ctype1", "Value=money", ENDITEM,
    "Name=atc_needrvrc1", "Value=0", ENDITEM,
    "Name=step", "Value=2", ENDITEM,
    "Name=pid", "Value=", ENDITEM,
    "Name=action", "Value=new", ENDITEM,
    "Name=fid", "Value=2", ENDITEM,
    "Name=tid", "Value=", ENDITEM,
    "Name=article", "Value=0", ENDITEM,
    "Name=special", "Value=0", ENDITEM,
    LAST);

 

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",
    "LB=thread.php?fid=",
    "RB=\" target=\"_blank",
    "Ord=All",
    "NotFound=ERROR",
    LAST);

web_url("web_url",
    "URL=http://localhost/phpwind",
    "TargetFrame=",
    "Resource=0",
    "Referer=",
    LAST);

 

// 将从forumids关联数组中随机取得的值保存到参数fid中
lr_save_string(lr_paramarr_random("forumids"),"fid");

 

(3) 一旦我们设置关联函数中的“Ord=All”,即使只找到一个值,也是一个关联数据,其用法有一些改变。比如我们无法直接根据参数名称“forumids”来取得其值,而必须使用类似“forumids_1”或者“forumids_2”等这种方式来取参数值。我们也可以使用“lr_paramarr_random()”函数来从该参数数组中随机取得一个值,所以此时,发帖的代码可以修改为:


web_submit_data("post.php",
    "Action=http://localhost/phpwind/post.php?",
    ITEMDATA,
    "Name=magicname", "Value=", ENDITEM,
    "Name=magicid", "Value=", ENDITEM,
    "Name=verify", "Value={verifycode}", ENDITEM,
    "Name=atc_title", "Value=这是帖子的标题-{sequence}", ENDITEM,
    "Name=atc_iconid", "Value=0", ENDITEM,
    "Name=atc_content", "Value=这是帖子的内容-{sequence}", ENDITEM,
    // 代码略 
    "Name=fid", "Value={fid}", ENDITEM,
    // 代码略
    LAST);

 

由于我们的帖子内容是中文,而Phpwind使用的是UTF-8的编码格式,所以在运行上述脚本的时候也需要确保“Convert to/from UTF-8”被勾选。运行后,我们还可以在“Replay”菜单下的“Test Results”中直接查看运行过程的截图:


20180202_170852_611.png 

 

版权所有,转载本站文章请注明出处:蜗牛学院在线课堂, http://www.mountsinaibaptistchurch.org/note/93
上一篇: 实验:使用LoadRunner实现Agileone的接口测试
下一篇: 实验:使用Appium测试Android应用程序
提示:登录后添加有效评论可享受积分哦!