秒懂HTTPS接口—JMeter压测篇

发表于:2019-4-19 14:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:左泽位 译    来源:测试窝

#
Jmeter
  前言
  使用JMeter压测HTTPS接口比较简单,只需要预先处理SSL证书认证,后面就是压测HTTP接口的通用步骤。
  HTTPS连接证书来验证浏览器和WEB服务器之间的连接。通过HTTP连接时,服务器会将证书提供给浏览器。为了对证书进行身份验证,浏览器会检查服务器证书是否链接到其内置根CA之一的证书颁发机构(CA)签名,详细请参照秒懂HTTPS接口(原理篇)
  JMeter压测
  目前主要两种方式:
  录制HTTPS(适用购买的CA证书)
  手动配置证书(均适用)
  录制HTTPS
  大致原理
  JMeter录制器通过浏览器访问其代理服务器,由代理服务器根据访问解析后生成 HTTPSampler的方式充当了浏览器的角色,于是当建立代理服务器连接后,浏览器会直接将代理服务器当做目标服务器。这时候它就会向代理服务器索要数字证书,JMeter通过生成一个本地的CA证书来完成这个与浏览器建立HTTPS连接的过程。 然后JMeter使用自己的证书拦截来自浏览器的HTTPS连接,实际上就是JMeter伪装成目标服务器。
  具体步骤
  打开JMeter在菜单栏上选择录制模板
  生成完整的测试计划
  在HTTPRequestDefault中输入域名/IP地址,这里以 github.com示例
  返回 HTTP(S)TestScriptRecorder,然后单击启动按钮
  这时候已经启动JMeter代理服务器,用于拦截浏览器请求。这时候会在 jmeter_home/bin文件夹中生成 ApacheJMeterTemporaryRootCA.crt文件

  JMeter生成的CA证书默认情况是不被浏览器信任的,所以我们需要安装其为受信任的证书,这里我以Mac系统示例。

  然后就是配置浏览器使用JMeter代理了,这里我以Chrome示例。
  打开"设置"
  打开"系统"菜单
  设置代理

  最后,在浏览器输入URL地址,JMeter会生成录制的请求。
  手动配置证书
  从浏览器导出站点证书(一般是单向证书,即服务器不限制客户端),此处以window系统Chrome浏览器示例
  证书导出为DER格式
  带有后缀扩展名的证书文件:
  *.DER *.CER : 这样的证书文件是二进制格式,只含有证书信息,不包含私钥。 *.CRT : 这样的文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与.DER/.CER相同。
  *.PEM : 一般是文本格式,可以放证书或私钥,或者两者都包含。
  *.PEM如果只包含私钥,那一般用 *.KEY代替。
  *.PFX *.P12 是二进制格式,同时含证书和私钥,一般有密码保护
  在JDK的bin目录下通过keytool把证书导入秘钥文件 .strore
  C:\Program Files\Java\jdk1.8.0_111\bin>keytool -import -alias tomcat -file d:/tomcat.cer -keystore d:/tomcat.keystore
  输入密钥库口令:
  再次输入新口令:
  所有者: CN=zuozewei, OU=7DGroup, O=7D, L=ChaoYan, ST=BeiJing, C=CN
  发布者: CN=zuozewei, OU=7DGroup, O=7D, L=ChaoYan, ST=BeiJing, C=CN
  序列号: 42a28e33
  有效期开始日期: Thu Nov 29 23:05:23 CST 2018, 截止日期: Fri Nov 29 23:05:23 CST 2019
  证书指纹:
  MD5: 14:0B:55:7A:F3:22:08:D0:B9:62:0D:52:68:6F:53:26
  SHA1: 62:66:3F:76:AE:B0:39:9A:20:B0:32:08:00:5D:9B:74:29:0A:D0:33
  SHA256: 45:A2:50:84:99:A6:74:2C:13:A4:67:88:AC:1C:2D:72:42:61:F0:A3:9E:D2:1E:F9:BF:79:76:E5:64:DF:C1:CD
  签名算法名称: SHA256withRSA
  版本: 3
  扩展:
  #1: ObjectId: 2.5.29.14 Criticality=false
  SubjectKeyIdentifier [
  KeyIdentifier [
  0000: 90 A9 84 43 50 99 02 A2   FC B4 0C 33 B0 B6 16 CC  ...CP......3....
  0010: C1 4E 80 AD                                        .N..
  ]
  ]
  是否信任此证书? [否]:  y
  证书已添加到密钥库中
  通过JMeter的SSL管理加载store文件
  后面跟压测HTTP接口一样,不过要注意 HTTPRequestSampler协议输入https,端口设置为443
  秒懂HTTPS接口系列源码:
  https://github.com/zuozewei/Springboot-https-demo

      上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号