LR访问Https接口
实操篇
第一步:需要跟开发或者运维要到要访问的https接口的证书(有关证书的问题我们在原理中有解释)。
第二步:确定要来的证书的格式是否为pem格式的。首先,LR只能够识别pem格式的证书而且是DER类型的pem格式的证书。其次,如果要来的证书为非pem格式的则需要进行证书格式的转换。(见第三步)
第三步:对crt格式证书进行DER类型的pem格式的证书转化。
解决办法:
1、 先从ie将crt证书安装到本机,然后再以cer格式导出证书
2、 Linux系统下执行命令:openssl x509 -in 文件名称.cer -inform der -outform pem -out 文件名称.pem;
3、
如果是windows系统下需要安装openssl,Linux系统下直接执行即可。
第四步:在LR下配置证书
解决办法:
1、
在Edit Recording Options(录制设置)中配置Port
Mapping
注释1:这块如果有需要指定某台服务器可以输入ip,如果像我们公司是做海外产品且服务器部署在海外且ip访问无效的情况下可以选择Any
Ssever。
注释2:端口号必须为433,常识啊。http默认为80,https默认为443。
注释3:http和https的区别就在这,原理会讲在这里可以一套雾水照着配置哦。
注释4:SSL Version必定选择截图,不要问我为什么,Tseng先生查遍官方文档也没找到所以然,对于哥这么“刨根问底”的人而言很痛苦可是这么配置肯定没错。当然这个问题后续我会继续研究。
注释5:很明显嘛,就不用解释太多了,请选择你转化好的DER类型的PEM格式的证书的路径。
注释6:这个问题会很突出。为啥还有密码?密码是为了干嘛?尼妹的没有密码怎么办?没有就不填呗。有密码就要来填上呗,反正当时我挺纠结。尼玛还要登录是咋滴!当然原理中还是会介绍滴。
2、
配置完毕当然是Update难道会是Cancel么?原谅我手欠的人才这么干!
3、
作为攻城狮配置完毕是不是应该规范的检查一遍?否则你怎么舍得叫攻城狮呢?
PS:作为号称当年玩烂LR的攻城狮我汗颜的是之前竟然把配置证书这步当成了录制必备,换句话说我误以为用web_set_certificate_ex();写在请求前就算完成了证书匹配的过程,坑爹啊网上的技术文章不可信啊!说话还要看语境呢!你写这些误导谁呀?对,都是他们的错。呵呵~~下面附该函数的具体使用格式,反正每个参数官方帮助写的跟没写一样,我猜都猜出来了。声明下真正生效的是按照上面的配置方法,在这里你就认为我炫技吧,这个函数唯一的用处就是录制后会出现,目前我是这么理解的反正我也不知道对不对:
web_set_certificate_ex("CertFilePath=mobimagic.pem",
"CertFormat=PEM",
"KeyFilePath=mobimagic.pem",
"KeyFormat=PEM",
"Password=123456",
"CertIndex=1",
LAST);
官方解释:
第五步:证书都配置完毕了,那就是写请求呗。别告诉get和post都分不清楚。反正get和post请求就那么几个函数。web_link();web_url();web_submit_data();web_submit_form();一堆一堆的,我就是想炫耀知识渊博,其实跟高手比还是个战五渣。这里想提醒的是,如果你的post请求写在body里了还特么加密了咋整?这些请求函数都不好使,换web_custom_request();吧。
第六步:神圣的时刻,F5运行下
第七步:诶呦?你以为这就结束了?这就was successful了?如果你运气不好会碰到报错。
解决办法:
到Run-time Setting(运行设置)中将图内的选项勾选,这个选项从网上查到的解释是“VuGen专用的基于套接字的重播是一种可伸缩以便进行负载测试的轻型引擎。使用线程时是准确的。基于套接字的引擎不支持socks代理服务器。如果在这样的环境中录制,应该使用winInet重播引擎。”但是至于为什么这么用作为下一个课题进行研究。
第八步:此刻你会惊喜万事大吉么?NO!你以为LR是有多智能?他说was
successful就successful了?作为攻城狮责任一定要到底!你当然需要到服务端查看下你发的请求的状态码是不是200?传送body里是否有内容?返回是不是正确的了?
看到了么?windows的机器的请求,这就够了。另外,作为攻城狮是不是要发散下?为了模拟正常的用户行为我们是不是访问这个接口会有N多种机器型号?肿么办?用web_add_header();进行参数化呗,你想要什么header就出什么header。
至此,实操篇结束。
题外话:以上只是真正做压测的第一步,至于如何进行完整的压测,怎么设置压力机?如何设置监控指标?设置哪些监控指标?监控目标应该是啥?如何进行场景鸡舍?如何进行数据分析?不同的数据之间有什么联系?每个指标代表了什么?等等等等,太多了,后续我会继续写文章,包括技术的周边。
理论篇
小注:
每次说到原理、理论都是大家特别反感的原因是这些东西很枯燥,但是高中哲学的唯物主义辩证法中有这么个原理和方法论就是实践与认知的辩证关系。其中里面说的很清楚,实践是认识的基础。实践是认识的来源;实践是认识发展的动力;实践是检验认识真理性的唯一标准;实践是认识的目的和归宿。认识对实践具有反作用。其实归纳下就一点理论是实践的升华。
说到https必然要先了解到https是个什么?他和很像的http有啥关系?那http是啥?我觉得,理论的东西大漫天且研究论证的过程很艰辛这些交给科学家就好我们没必要去了解那么深只需要知道大体是怎么回事怎么应用就好。其实,简单说来HTTP协议传输的数据都是未加密的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure
Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。因此将原来的http换成了https链接。
那么问题来了,实操中说到证书和上边介绍的加密有啥关系呢?答案是,https属于非对称加密,需要公钥和私钥才能完全得到想要的数据,换句说公钥可以进行访问,私钥相当于可以造数据,换成普通话说想要知道https怎样加解密需要两把钥匙一把是公钥一把是私钥,这两把钥匙是各司其职。接下来就会有个问题,https的工作流程是如何进行的?我估计这个问题你网上一搜一大把,但是纯理论不接地气,我想说的是以往的http请求无需身份验证就可以直接做请求来者不拒,但是https相当于在做请求前先要进行一下身份验证,这个验证就需要到公钥有的公司为了更安全可能设置了密码,所以大体的请求交互流程就是身份验证通过后进行请求。从代码流程上就要分身份验证和请求两块,也就是说要将获取到的证书先进行配置在进行验证最后执行请求函数。当然,这里说的简单些,原因是基于LR进行的脚本输出。
LR访问Https接口的更多相关文章
- 访问https接口报错 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系
详细错误信息如下 请求错误信息:发生一个或多个错误.System.Net.Http.HttpRequestException: An error occurred while sending the ...
- Spring boot 配置https 实现java通过https接口访问
近来公司需要搭建一个https的服务器来调试接口(服务器用的spring boot框架),刚开始接触就是一顿百度,最后发现互联网认可的https安全链接的证书需要去CA认证机构申请,由于是调试阶段就采 ...
- 【小程序】访问 https配置的数据接口
小程序对于网络请求的URL的特殊要求:1)不能出现端口号; 2)不能用localhost; 3) 必须用https (一)搭建本地https服务器(windows) 搭建出来的服务 ...
- 用Charles抓取https接口数据
由于我之前抓取的某APP接口全面换上了https接口,导致我在抓取过程中遇到了很大的困境 用Charles无法获取到内容,由于现在已经搞定了,无法展示当时的错误信息,我从网站找了一个类似的错误信息 首 ...
- 通过HttpWebRequest请求https接口
一.为什么进行代理接口的开发: 有些项目需要访问被墙了哒网站,比如前不久公司开发项目需要使用google地图的接口,而google在中国被墙了,所有打算做一个代理接口服务,将代理放到国外服务器上,通过 ...
- AFNetworking 原作者都无法解决的问题: 如何使用ip直接访问https网站?
背景 最近App似乎有报异常是DNS无法解析,尝试解决此问题.搜集到的资料很少,甚至连AFN原作者都判定这可能是一个无解的问题,参见: https://github.com/AFNetworking/ ...
- java实现https,https接口请求
/**********************https 接口'*******************/ /** * 安全证书管理器 */public class MyX509TrustManager ...
- 解决访问HTTPS,抛出的异常javax.net.ssl.SSLHandshakeException
本地测试没问题,http换成https抛出异常javax.net.ssl.SSLHandshakeException,网上有说是服务器证书,有说要启动SSL3协议的,反正没有找到有用的. 在GET和P ...
- 记一次sql server 2005访问http接口,并解析json的过程
记一次sql server 2005访问http接口,并解析json的过程 JSON解析官方网站:https://www.red-gate.com/simple-talk/sql/t-sql-pro ...
随机推荐
- 搭建Pypi转发服务
有时候有些正式环境的机器,不能访问外网,就只能在能访问外网的机器上搭建一个转发服务. 一.安装包 pip install flask_pypi_proxy flask_pypi_proxy 二.启动 ...
- git log --pretty=format:" "
控制显示的记录格式,常用的格式占位符写法及其代表的意义如下: 选项 说明%H 提交对象(commit)的完整哈希字串%h 提交对象的简短哈希字串%T 树对象(tree)的完整哈希字串% ...
- Spark RDD的默认分区数:(spark 2.1.0)
本文基于Spark 2.1.0版本 新手首先要明白几个配置: spark.default.parallelism:(默认的并发数) 如果配置文件spark-default.conf中没有显示的配置,则 ...
- 离线提取域控HASH的方法
1.注册表提取 提取文件,Windows Server 2003或者Win XP 及以前需要提升到system权限,以后只要Administrator权限即可. reg save hklm\sam s ...
- gym 101755
别问我为什么现在才发... 我怎么睡醒午觉吃了个饭就晚上九点半了啊????? 真实自闭场,感觉码力严重不足需要补魔. A: #include <bits/stdc++.h> using n ...
- poj3335
半平面交&多边形内核.因为没注意了点的情况自闭了. https://blog.csdn.net/qq_40861916/article/details/83541403 这个说的贼好. 多边形 ...
- sublime3 快速运行 java
build 系统 Java.sublime-build { "cmd": ["javac $file_name && java $file_base_na ...
- C# word 图片大小
通过Office自带的类库word文档中插入图片,图片大小的单位为磅 而文档中,图片的大小已经固定,为CM. 实际工作中,首先将图片插入到word中,根据目前的大小,计算转换为目标大小的比率,将长宽按 ...
- Listen error 错误和 limit of inotify watches was reached
今天在生产环境中报错rails c中报了一个错误: FATAL: Listen error: unable to monitor directories for changes. Visit http ...
- SQL 资源整理
https://linux.linuxidc.com/index.php 资源链接:linux.linuxidc.com SQL必知必会(第4版)是SQL经典畅销书,内容丰富,简洁实用.本书是麻省理工 ...