实操篇

第一步:需要跟开发或者运维要到要访问的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接口的更多相关文章

  1. 访问https接口报错 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系

    详细错误信息如下 请求错误信息:发生一个或多个错误.System.Net.Http.HttpRequestException: An error occurred while sending the ...

  2. Spring boot 配置https 实现java通过https接口访问

    近来公司需要搭建一个https的服务器来调试接口(服务器用的spring boot框架),刚开始接触就是一顿百度,最后发现互联网认可的https安全链接的证书需要去CA认证机构申请,由于是调试阶段就采 ...

  3. 【小程序】访问 https配置的数据接口

    小程序对于网络请求的URL的特殊要求:1)不能出现端口号;    2)不能用localhost;       3)  必须用https (一)搭建本地https服务器(windows) 搭建出来的服务 ...

  4. 用Charles抓取https接口数据

    由于我之前抓取的某APP接口全面换上了https接口,导致我在抓取过程中遇到了很大的困境 用Charles无法获取到内容,由于现在已经搞定了,无法展示当时的错误信息,我从网站找了一个类似的错误信息 首 ...

  5. 通过HttpWebRequest请求https接口

    一.为什么进行代理接口的开发: 有些项目需要访问被墙了哒网站,比如前不久公司开发项目需要使用google地图的接口,而google在中国被墙了,所有打算做一个代理接口服务,将代理放到国外服务器上,通过 ...

  6. AFNetworking 原作者都无法解决的问题: 如何使用ip直接访问https网站?

    背景 最近App似乎有报异常是DNS无法解析,尝试解决此问题.搜集到的资料很少,甚至连AFN原作者都判定这可能是一个无解的问题,参见: https://github.com/AFNetworking/ ...

  7. java实现https,https接口请求

    /**********************https 接口'*******************/ /** * 安全证书管理器 */public class MyX509TrustManager ...

  8. 解决访问HTTPS,抛出的异常javax.net.ssl.SSLHandshakeException

    本地测试没问题,http换成https抛出异常javax.net.ssl.SSLHandshakeException,网上有说是服务器证书,有说要启动SSL3协议的,反正没有找到有用的. 在GET和P ...

  9. 记一次sql server 2005访问http接口,并解析json的过程

    记一次sql server 2005访问http接口,并解析json的过程  JSON解析官方网站:https://www.red-gate.com/simple-talk/sql/t-sql-pro ...

随机推荐

  1. Mac 安装win10操作系统

    因为是做苹果开发的,用的一直是苹果的系统,前两天因为想要做内网穿透,需要用到花生壳这个软件,问题是这个软件只有windows版本和Linux版本,所以就想在苹果电脑上装一个windows系统,也想借此 ...

  2. java相对路径、绝对路径及类路径

    import java.io.File; import java.net.URL; /** * java相对路径.绝对路径及类路径的测试 */ public class Test { /** * 测试 ...

  3. Excel导入工具类兼容xls和xlsx

    package com.bj58.finance.platform.operation.provider.util; import org.apache.log4j.Logger; import or ...

  4. Qt编写自定义控件2-进度条标尺

    前言 进度条标尺控件的应用场景一般是需要手动拉动进度,上面有标尺可以看到当前进度,类似于qslider控件,其实就是qslider+qprogressbar的杂交版本,不过我才用的是纯qpainter ...

  5. CSS属性选择器和部分伪类

    p[name]{background:red;} 只使用属性名p[name=ghr]{background:red;} 指定属性名,并指定了该属性的属性值p[name~=old]{background ...

  6. 学习Vue 入门到实战——学习笔记

    闲聊: 自从进了现在的公司,小颖就再没怎么接触vue了,最近不太忙,所以想再学习下vue,就看了看vue相关视频,顺便做个笔记嘻嘻. 视频地址:Vue 入门到实战1.Vue 入门到实战2 学习内容: ...

  7. MySQL 分页数据错乱重复

    select xx from table_name wheere xxx order by 字段A limit offset;, 表数据总共 48 条,分页数量正常,但出现了结果混杂的情况,第一页的数 ...

  8. easywechat (在thinkphp5中使用easywechat完成微信网页认证)

    由于在easywechat中没有提及在thinkphp中的使用,后来我在http://www.thinkphp.cn/topic/45416.html中找到了有人已经封装了一下,我把自己使用的过程写下 ...

  9. common lisp 里的几个操作符(2)

    集合 (Set) member 函数 默认使用 eql比较对象,可传入关键字参数 :test,作为比较的函数.关键字参数 :key,指定在每个元素上应用这个函数. > (member 2 '(( ...

  10. Java Web 笔试(面试)题

    1.Servlet 的生命周期,并说出 Servlet 与 CGI 的区别 Web 容器加载 Servlet 并将其实例化后,Servlet 生命周期开始,容器运行其 init 方法进行 Servle ...