包含https接口测试的词条

网友投稿 322 2023-02-23


本篇文章给大家谈谈https接口测试,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享https接口测试的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

接口测试二(http,https数据包分析)

本节将介绍上一节提到的三种协议数据包分析。
上节提到一次与服务器交互的过程会有请求和返回,而每一种协议的请求和返回的数据格式都会包含“头部(head)”,“身体(body)”。

http协议是我们最常见的协议,http请求与http返回的区别就是http请求会有一个请求地址,而http返回没有请求地址,但会有一个返回码。

JMeter测试HTTPS请求

HTTP和HTTPS测试时稍有不同,HTTPS需要加载证书,端口也不一样,操作如下:
2)使用JMeter自带的证书 ApacheJMeterTemporaryRootCA.crt(在bin目录下)
4)重启jmeter,如果是自己填写请求,https的端口一般是443,不再是http的80端口(当然也不一定是443,这个是可以配置的)如果测试中报错,就注意下证书有没有导入,请求的协议是不是填写https,端口号是不是填了443

HTTPS录制安装jmeter根证书到浏览器
1)关于HTTPS证书HTTP协议采用明文传输数据,如果是敏感数据,就不安全了,HTTPS(安全套接字层超文本传输协议)采用密文传输数据,在通讯中需要获得服务器的证书(公钥)

HTTPS连接使用证书来验证浏览器和Web服务器之间的连接。当通过HTTPS连接时,服务器将证书发送给浏览器。为了验证证书,浏览器检查服务器证书是否由其内置的根CA(Certificate.,CA)之一的证书颁发机构签名。还要检查证书是否为正确的主机或域,并且它有效且未过期。如果检查失败,它将提示用户,然后用户可以决定是否允许连接继续进行。

Jmeter要用自己的证书来拦截浏览器中的HTTPS连接。默认情况下,Jmeter的CA证书不会被浏览器信任,但是我们可以它可以作为可信证书安装到浏览器。一旦完成,生成的服务器证书将被浏览器接受。这样做的优点是,即使嵌入的HTTPS资源也可以被拦截,并且不需要重写每个新服务器的浏览器检查。

如上所述,当在Java 8下运行时,jmeter可以为每个服务器生成证书。为了顺利运行,jmeter所使用的根CA签名证书需要被浏览器信任。第一次启动HTTP代理服务器时,如果需要的话,它将生成证书。根CA证书被导出到当前启动目录中的名称为ApacheJMeterTemporaryRootCA.crt的文件中。当证书被设置时,jmeter将显示与当前证书详细信息的对话框。在这一点上,证书可以导入到浏览器中,按照下面的说明。

请注意,一旦根CA证书已安装为可信CA,浏览器将信任由其签名的任何证书。直到证书到期或证书从浏览器中删除的时候。因此,任何可以获取密钥存储和密码的人都可以使用证书生成证书,这些证书将被信任JMeTealCroot CA证书的任何浏览器所接受。由于这个原因,密钥存储和私钥的密码被随机生成,并且使用了一个短的有效期。密码存储在本地首选项区域中。请确保只有可信用户可以使用密钥存储库访问主机。

录制HTTPS需要导入jmeter的证书,那么如何导入证书呢?为HTTPS录制安装jmeter根证书到浏览器浏览器需要向服务器索要证书,以验证服务器不是假冒服务器。用jmeter代理时,用的jmeter的证书,而浏览器并不认可该证书,所以要将jmeter的证书导入浏览器。
回复关键词【jmeter】获取视频教程
JMeter历史文章查看点击干货分享--接口自动化
对此文有疑问?赶紧在留言区留言吧
看完本文有收获?请转发分享给更多人

面试官95%会问的接口测试知识

接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,无非就是这个项目点完了点那个项目, 这就是为什么各行各业的只要手指能点得动的人都来转行软件测试了。面试的时候面试官希望你除了点点点,还能更深入一点的思考页面上看不到的功能,也就是接口测试了。接口是看不见的,但是可以访问!

DNS是域名系统(Domain Name System) ,DNS是用来做域名解析的,它会在你上网输入网址后,把它转换成IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的IP,但有了DNS的处理,你只需要记住对应网站的域名,即网址就可以了。

HTTP协议:超文本传输协议,是基于TCP的协议,默认为80端口。它的作用是用来规定客户端和服务器的数据传输格式。是一种用于请求与响应模式的、无状态、无连接 的应用层协议。 由于HTTP协议是一种请求-响应模式,所以一般需要关注HTTP请求和HTTP响应。

使用fiddler工具抓取HTTPS, 具体操作请查看文末领取教程

1xx -- 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)

2xx -- 成功(表明服务器成功地接受了客户端请求)

3xx -- 重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求)

4xx -- 客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份证验证信息)

5xx -- 服务器错误(服务器由于遇到错误而不能完成该请求)

常见的返回码有:

200 OK - [GET]:服务器成功返回用户请求的数据

201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功

202 Aceepted - [*]:表示一个请求已经进入后台排队(异步任务)

204 NO CONTENT - [DELETE]:用户删除数据成功

400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作

401 Unauthorized -[*] :表示用户没有权限(令牌、用户名、密码错误)

403 Forbidden -[*] :表示用户得到授权(与401错误相对),但是访问被禁止

404 NOT FOUND -[*]:用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的

406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。

410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。

422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。

500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

HTTP协议常用的请求方式有如下几种:

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS和HTTP的区别主要如下:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

POST和GET都是向服务器提交数据,并且都会从服务器获取数据。

区别:

(1)传送方式:get通过地址栏传输,post通过报文传输

(2)传送长度:get参数有长度限制(受限于url长度),而post无限制

(3)GET产生一个TCP数据包(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据),POST产生两个TCP数据包(对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok返回数据)

(4)get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留

(5)在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用post方式

请求报文: 一个HTTP请求报文由请求行(Request Line)、请求头(Header)、空行(Blank Line)和请求体(Body)4个部分组成。

响应报文: HTTP响应报文和请求报文的结构差不多,由状态行、响应头、空行、响应体4个部分组成。

是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。

解决方案:通过cookie和session来保持状态。

请求body;请求url+请求body:

Content-type:

application/x-www-form-urlencoded: 表单提交--键值对, form

multipart/form-data:文件上传---文件 ,MIME

application/json,text/xml:

http协议目前有4个版本(0.9,1.0,1.1,2.0),其中1.0、1.1版本在互联网上被广泛使用,2.0版本目前应用很少,是下一代的http协议。

1.存储位置不同:Cookie 是将用户数据通过加密的方式保存在客户端,大多数情况 Cookie 存储在浏览器;Session 是用于控制客户端和服务端的连接,Session 存储在服务器;

2.存储容量不同:单个 Cookie 保存的数据不得超过 4kb,一个站点最多 20 个 Cookie,Session 一般情况下没有上限,不过建议不要存放太多东西,否则影响性能;

3.存取方式不同:Cookie 只能用 ASCII 字符串,通过编码方式获取 Unicode 字符或者二进制数据,不好存储复杂的信息,而 Session 能存储任何类型的数据;

4.隐私策略/安全性不同:Cookie 放在客户端,可以进行 Cookie 欺骗,所以不安全,Session 放在服务端,更加安全;

5.有效期不同:Cookie 可以设置属性达到长期有效,Session 依赖于 JSESSIONID 的 Cookie,Cookie JSESSIONID 的过期时间默认为-1,只需要关闭窗口 Session 就会失效,就算不依赖 Cookie,用 UrL 重写也不能完成,如果 Session 超时时间过长,容易导致内存溢出;

6.服务器压力不同:Cookie 保存在本地,不存在服务端压力,Session 保存在服务端,每个用户产生一个 Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用 Cookie;

7.浏览器支持不同:如果浏览器禁用 Cookie,那么 Cookie 直接失效,Session 比较好点,可以用 URL 重写;

8.Cookie 和 Session 应用的场景:Cookie 一般用于记住用户的登录状态,如记录用户的习惯,购物车;而 Session 用于登录验证。

https在应用层。

会话层为7层协议的第五层,为表示层提供建立、维护和结束会话连接的功能,并提供会话管理服务。

在浏览器中输入URL并回车后,主要发生以下步骤:

解析URL,获取要访问的域名

DNS域名解析,根据访问的域名获得目标服务器的IP地址

浏览器与服务端三次握手建立TCP连接

连接建立成功之后就可以发送HTTP请求报文以及服务器返回HTTP响应报文

断开TCP链接

浏览器解析响应报文,渲染页面

POSTMAN测试调取https接口时返回为空问题

在本地测试缩写https接口测试的restful接口时https接口测试,发现运行时后台是有数据返回。在postman中调用时response却为空。
这里需要做下postman的配置,在设置里将SSL certificate verification
SSL证书相关的这个选项给关掉就可以了。

接口测试注意的点

接口测试作为集成测试的一部分,通过直接调用被测试的接口来确定系统在功能性、可靠性、安全性和性能方面是否能达到预期,有些情况是功能测试无法覆盖的,所以接口测试是非常必要的。

接口测试分为两种,一种是webservice接口,走soap协议通过http传输,请求报文和返回报文都是xml格式的,测试时通过工具soapUI进行测试。使用情况比较少;另一种http api接口,走http传输协议,通过路径来区分调用的方法,最常用的是get和post请求。

get请求和post请求的区别在哪里呢https接口测试?网上的答案为https接口测试

1、get请求可以在浏览器中请求到,post请求的测试需要借助工具

2、get请求使用url和cookie传参,post的数据放在body中

3、post比get更安全,因为传递的参数在url上是看不到的

4、get请求的url会有限制,而post请求的数据可以非常大

5、一般get请求是来获取数据,post请求是传递数据的

其实,对于现在飞速发展的 互联网来说,上面的说法已经不严谨了。首先,post请求的参数也可以写在url里,但是这种情况不多见;其次表面上看起来,post利用body传参,比get的url传参安全,但其实只要用抓包工具(fiddler,Charles等),post的参数也是一览无余;再次,现在的浏览器非常强大,可以输入支持很长的URL,所以也不再有限制一说了。这么说来,种种区别只有最后一条是最根本的了。

 怎么来测试接口呢?根据什么来测呢?这就需要开发提供的接口文档了,接口文档和功能测试的需求说明书的功能是一样的。包括:接口说明、调用的url,请求方式(get or post),请求参数、参数类型、请求参数说明,返回结果说明。这里接口文档生成可以使用apipost接口文档生成工具。有了接口文档后,我们就可以设计用例了,一般接口测试的用例分为以下几种:

1、通过性验证,说白了就是传递正确的参数,是否返回正常的结果

2、参数组合,因为参数有必传和非必传,参数的类型和长度,以及传递时可能业务上的一些限制,所以在设计用例时,就要排列组合这些情况,保证所有情况都能覆盖到

3、接口的安全性,这个又分为几种情况:

1)绕过验证,比如提交订单时,在传递商品价格参数时,修改商品价格,就要看后端有没有验证了。或者我支付时,抓个包将订单金额一改,如果能以我改后的金额支付,那这个借口就有问题了。

2)绕过身份验证,就是某个功能只有有特殊权限的用户才能操作,那我传递一个普通的用户,是不是也能操作呢

3)参数是否加密,这个关系到一些账户的安全,比如我们在登录一些网站时,它要将我们的登录信息进行加密,如果不加密我们的信息就会暴露,危害性极大。

4) 密码安全规则,设置密码时复杂程度的校验。

4、根据业务逻辑来设计用例

用例设计完了,用什么来测试接口呢?我们可以借助一些工具,比如apipost和jmeter。apipost使用比较简单,可以在列表中选择请求方式,在输入框中输入URL,如果是get请求,直接点击发送就可以看返回结果了。

如果是post请求,会涉及到几种参数的上传方式和添加请求头、权限验证还有添加cookie等操作。apipost都可以简单实现

还有一种测试接口的工具是jmeter,用途比较广泛,不但能测接口的功能,还能对接口进行性能测试。比如:压力测试、负载测试等。在jmeter中需要创建线程组,如图:

Apipost官方链接: https://console.apipost.cn/register?utm_source=10008

关于https接口测试和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 https接口测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、https接口测试的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:关于https协议接口测试的信息
下一篇:包含https的接口测试的词条
相关文章

 发表评论

暂时没有评论,来抢沙发吧~