
使用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文件即可打开和编辑
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)