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

实验:使用LoadRunner实现Agileone的接口测试
作者:强官涛   类型:测试开发    类别:实验   日期:2018-02-02    阅读:2750 次   消耗积分:1 分


实验简介


LoadRunner作为一个企业级标准性能测试工具,在软件测试的发展过程中扮演着重要的地位,几乎已经成为性能测试领域的行业标准,影响了很多人。笔者在刚入行时,也经常使用LoadRunner,很多性能测试方面的思路,也受到了LoadRunner这款工具的影响,虽然目前看起来LoadRunner依然有很多不尽人意的地方,但是从一款工具的角度来看,LoadRunner的强悍之处目前JMeter仍然无法超越。任何一个性能测试工具,必然可以用于完成接口测试,这几乎已经成为行业共识。无论是SoapUI,还是JMeter,或者是本章实验将要为大家介绍的LoadRunner。

 

实验目的


(1) 掌握LoadRunner处理GET和POST请求的用法。

(2) 熟练运用LoadRunner完成针对HTTP协议的接口测试。

(3) 掌握LoadRunner中的参数化,检查点,关联的用法。

 

实验流程


1. LoadRunner功能介绍

目前LoadRunner的最新版本是12.5,并且提供了50个并发用户的社区版免费授权,为企业和个人使用LoadRunner降低了门槛。LoadRunner的功能非常多,非常全,在此无法一一列出,笔者就常用的一些功能作简单介绍:

(1) 提供了对最新版Windows操作系统及64位操作系统的支持。

(2) 提供了对最新版IE浏览器的脚本录制支持。

(3) 提供了对移动APP端进行协议监控分析和脚本录制的支持。

(4) 在各种Java协议和C Vuser协议中支持64位回放。

(5) HTTP流媒体视频(HLS,HTML5)支持。

(6) 支持目前主流的各种网络协议。

(7) 支持C,Java,.NET,JavaScript等编程语言。

(8) 可视化的场景设计和指标监控。

(9) 可视化的性能指标分析器,在分析性能指标时非常有用。


20180202_164424_702.png 

 

2. LoadRunner的四大核心组件

(1) 虚拟用户脚本生成器(Virtual User Generator):主要用于开发和调试性能测试脚本。可支持主流的编程语言。

(2) 测试控制器(Controller):执行性能测试管理和监控的中央控制器,负责场景的设计,性能测试执行,指标的监控,并且也用于管理负载生成器。

(3) 结果分析器(Analysis):在测试完成后,对测试过程中收集到的各种性能数据进行计算、汇总和处理,生成各种图表和报告,为系统性能测试结果分析提供支持。

(4) 负载生成器(Load Generator):接受Controller组件的控制,可以多台电脑同时生成负载,用于模拟大量并发用户。

 

3. 发送GET请求

(1) 打开Virtual User Generator,并新建一个“Web - HTTP/HTML协议”的测试项目。


20180202_164432_635.png 

 

(2) 点击菜单“Design”下的“Insert in Script”下的“New Step”,在右侧的步骤生成器中,输入“web_url”并进行搜索,为当前脚本插入一个GET请求。并输入URL地址即可。


20180202_164440_135.png 


此时,会在当前脚本中生成一个GET请求。代码如下:


Action()
{    
    web_url("web_url",
        "URL=http://localhost/agileone/",
        "TargetFrame=",
        "Resource=0",
        "Referer=",
        LAST);    
    
    return 0;
}

 

我们可以直接点击工具栏上的“Replay”按钮运行当前脚本,一个GET请求便发送成功。

 

4. 为响应添加检查点


上述脚本可以向Agileone的分分28官网|分分28开奖网发送一个GET请求,那么如何来创建一个检查点来确认响应的正确性呢?在LoadRunner中我们主要使用函数“web_reg_find”来创建响应,步骤如下:

(1) 将光标定位到web_url这个请求的前面。

(2) 插入一个新的步骤,并选择“web_reg_find”,生成一段检查点的脚本。


20180202_164449_484.png 

 

(3) 最关键的两步设置:在“Search for specific Text”中输入我们要检查的内容,支持中英文。在“Save count”中输入一个参数名,用于后续的检查点判断。在LoadRunner中,检查点的使用是根据搜索指定文本在响应中出现的次数来进行的。比如上述的设置中,如果“保存登录信息”这段文本在响应的Body中只要出现一次,那么我们就可以断定,该GET请求是正常的。


(4) 我们还需要使用LoadRunner的函数“lr_eval_string”来读取刚才在“Save count”中保存的参数“checkHome”的值,并将其转换为整数,进而判断是否是大于或等于1次。最终的检查点的代码如下:


Action()
{    
    // 该代码必须放在GET请求的前面,这是LR的规则
    web_reg_find("Search=Body",
        "SaveCount=checkHome",
        "Text=保存登录信息",
        LAST);
    
    web_url("web_url",
        "URL=http://localhost/agileone/",
        "TargetFrame=",
        "Resource=0",
        "Referer=",
        LAST);
    
    // atoi 是C语言中用来将一个字符串转换为一个数字的函数
    // lr_eval_string 读取一个参数的值,参数名称需加{}包含
    if (atoi(lr_eval_string("{checkHome}")) >= 1) {
        lr_output_message("打开分分28官网|分分28开奖网成功");
    }
    else {
        lr_output_message("打开分分28官网|分分28开奖网失败");
    }
    
    return 0;
}

 

回放上述代码,结果输出为“打开分分28官网|分分28开奖网失败”,原因是因为我们并没有针对响应的编码格式做转码处理。由于Agileone使用的是UTF-8编码,所以我们需要设置LoadRunner支持UTF-8编码。在菜单“Replay”中的“Runtime Settings”中,选择“Preference”标签页,定位到“General”选项卡下面,勾选“Covert to/from UTF-8”,并保存即可。如下图所示:


20180202_164458_825.png 

 

这样就可以正常处理UTF-8编码格式的文本内容了。在我们首次执行脚本的时候,还有一个问题比较烦人,就是每一次运行后,都会弹出一个“Reply Summary”的测试报告窗口,比较耽误时间,我们可以直接将其去掉。打开菜单“Tools”下的“Options”选项设置窗口,在“Scripting”标签页中的“Replay”选项卡下面,设置“After Replay Show”为“Script”而不是“Replay Summary”即可。


20180202_164505_976.png 

 


5. 实现登录的接口测试

插入一个新的步骤,并选择“web_submit_data”,打开POST请求生成器,并输入登录Agileone所需要的关键信息。

(1) 输入POST请求对应的URL地址。

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