美文网首页百人计划编程技术类
【接口/性能】Jmeter-01

【接口/性能】Jmeter-01

作者: JOooo_ | 来源:发表于2017-04-19 11:03 被阅读152次

    测试需求跟上一篇实践一样,区别是之前用python-requests去实现,现在用Jmeter实现。

    使用Jmeter测试授权流程,https请求,步骤描述如下

    1)用户名密码登录CAS服务器,拿到TGT

    2)使用TGT,拿到ST

    3)通过接口url+ST,向应用服务器请求数据

    打开Jmeter后自动生成一个测试计划,在测试计划下新建线程组(一个线程组可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户)。先把这个用户组将要执行的动作添加进去,如下步骤。

    一、Jmeter发送HTTPS请求

    成功地发送HTTPS请求,关键之处就是代理的设置。首先我们要在线程组里添加一个录制控制器,不然无法生成Jmeter的CA证书文件。然后在工作台右键添加-〉非测试元件-〉HTTP代理服务器。选择默认端口是8080即可。我电脑8080端口被占用了,用8888也可以。直接点击启动。

    接着找到工具栏“选项”-〉SSL管理器。打开bin目录下的ApacheJMeterTemporaryRootCA.crt,开启Jmeter代理。

    二、添加HTTP请求头

    出于服务器安全方面的考虑,在设计的时候,公共请求头还添加了一个自定义的特殊的字段。在这里加上就好了。

    三、添加HTTP请求

    因为是HTTPS,将端口号填写443。协议:https。方法我这里用的是POST。将服务器名称和路径填入。并添加请求参数username和password。底部代理服务器填写本机地址和之前设置的端口号8888。(后面会发现运行后,录制控制器那里会记录下通过该代理服务器的请求)

    这里的HTTPS请求实现了第一步:用户名密码登录CAS服务器,拿到TGT,可以看到响应信息中TGT的值。

    四、正则表达式提取器

    接下来需要实现第二步:使用TGT,拿到ST。怎么在新增的HTTP请求中用到上一请求的返回值呢?这里就用到正则表达式提取器。右键后点击:添加>后置处理器>正则表达式提取器。

    正则表达式括号中表示提取的内容。

    正则表达式提取器说明如下:

    然后添加新的HTTP请求,填入相应路径和参数。这里路径里需要用到刚才提取的TGT值,使用${TGT}进行引用。

    最后的两个请求实现第三步:通过接口url+ST,向应用服务器请求数据。需要用到getTicket中的ticket返回值。也是使用正则表达式提取器就好了。

    五、扩展

    1)性能测试

    实现单独某个接口测试后,可以进行该接口的性能测试。比如测试系统的及时性、处理能力等特性。通过响应时间、吞吐量、并发用户量去衡量服务器性能。

    这里可以在线程组的参数中调整。最开始说到,线程组中的每个线程都可以理解为一个虚拟用户。

    线程数:虚拟用户数

    Ramp-up Period:设置的虚拟用户数需要多长时间全部启动。如果线程数为10 ,准备时长为2 ,那么需要2秒钟启动10个线程。也就是每秒钟启动5个线程。

    循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么总请求数为1000。

    运行后查看聚合报告,也有其它类型的比如图形结果、结果树等。

    衡量指标一般有:平均响应时间,90%Line值(指90%请求响应时间不会超过这个值),错误率(一般要求为0或<0.01%),吞吐量等。

    2)Cookie管理器

    对于软件或web中一些需要登录后才有权限的操作,当进行接口测试时不可能每一次都登录一次。这时候可以在最开始登录后,获取Cookie信息,以便其它操作直接用到。可以用Cookie管理器。这个还没仔细研究,所以仅作为可能的扩展写在这里。

    相关文章

      网友评论

        本文标题:【接口/性能】Jmeter-01

        本文链接:https://www.haomeiwen.com/subject/plwfzttx.html