【接口性能】Jmeter-01

【接口性能】Jmeter-01,第1张

测试需求跟上一篇实践一样,区别是之前用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管理器。这个还没仔细研究,所以仅作为可能的扩展写在这里。

很多时候我们在对比HTTP请求的时候都是直接在ExMobi程序中模拟的,如果请求简单这种做法是可取的。

但是如果经过多次尝试都对比不出来,或者请求比较复杂,这时候就需要借助工具来帮助了。

这里推荐一个工具Jmeter。

其最大的好处就是集成了JAVA的httpclient来模拟HTTP请求,而ExMobi页面抓取的核心类也是httpclient,在JMeter中来模拟HTTP请求的抓包更贴近于ExMobi,并更容易在模拟成功后无缝还原到ExMobi中。

下载完成后直接解压到任意目录,然后运行根目录/bin/jmeter.bat文件即可打开jmeter的工作界面。

下面就介绍如何使用:

1、准备测试数据。

首先先用抓包工具把浏览器上的正确请求抓包保存起来。

2、打开并设置Jmeter

a. 点击"测试计划",右键"添加"-"Thread(Users)"-"线程组",线程数先设置1b.在"线程组",右键"添加"-"Sample"-"HTTP请求"

c.修改HTTP请求页面的参数

根据第一步准备的测试数据设置到HTTP请求面板中,注意各个参数要对应上

d.设置头信息

除了请求的基本参数,有可能还需要添加头信息。在左侧选中请求,点击右键选择“HTTP信息头管理器”和“HTTP Cookie管理器”

即可添加请求的一些必要头信息

e.其他信息jmeter中还可以有更多丰富的设置,具体可以参阅http://www.ltesting.net/ceshi/open/kyxncsgj/jmeter/

3、开始进行测试

开始测试时请先把抓包工具打开,需要模拟的请求请置为启用状态,设置启用状态的方式如下:

设置好之后点击快捷菜单的执行按钮即可发起当前请求,这时候在抓包工具中应该就可以进行请求,并且在抓包工具中看到抓包

4、将第1步和第3步的抓包进行对比之后,如果判定请求错误,那么继续重复2-4的步骤即可

下面是本次示例保存的计划任务,可以直接在jmeter中导入修改

导入方法为解压zip包中的jmx文件,在jmeter界面的菜单“文件”中选择“打开”,选中此jmx文件即可打开和编辑


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11694705.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存