RestAssured接口自动化从入门到框架搭建-17-处理SSL和TLS协议

本文主要是介绍RestAssured接口自动化从入门到框架搭建-17-处理SSL和TLS协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这篇简单记录下如何处理SSL和TLS异常,在接口测试中,SSL异常我们之前见过,早起网站都是http打头,然后15年还是16年什么时候,全部要求每个生产环境的网站都使用HTTPS协议,这个S就是安全的意思。关于HTTPS协议,不得不带出SSL和TLS协议。

 

1.网络知识

关于SSL和TLS的历史,英文好的可以看这里https://www.hostingadvice.com/how-to/tls-vs-ssl/

中文看这里 https://baike.baidu.com/item/ssl/320778?fr=aladdin

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

SSL是网景公司最早提出来,然后后面被TLS加密方式给取代,现在都是流行采用TLS加密。

 

 

2.使用场景

我们知道如果一个网站HTTPS开头进行访问,这个网站对应背后公司是需要去购买HTTPS证书,给网站配置正确的证书,用户才能用https打头去访问,证书一般是有有效期的,例如一年,两年,公司是需要续费。

问题就来了,公司可以保证生产环境的HTTPS证书有效,但是测试环境一般是不配置证书。由于不配置证书,可能接口访问会报相关HTTPS证书的异常。例如SSLPeerUnverifiedException 这个异常。

这时候,我们又不能不在测试环境进行接口测试,下面来看Rest Assured提供相关方法去避免这种异常。

 

3.相关代码

package demo;import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;import io.restassured.RestAssured;import static io.restassured.RestAssured.*;public class HandTLS_SSL {@BeforeClasspublic void setup() {RestAssured.useRelaxedHTTPSValidation();}@Testpublic void testInvalidSSLException() {// 如果这样访问无效证书的https开头的网站,会报SSLPeerUnverifiedException异常given().get("证书无效或者证书过期的测试环境").then().statusCode(200).log().all();}/*** 处理无效SSL证书过期 不对的异常*/@Testpublic void testRelaxedHTTPValide() {// 使用useRelaxedHTTPSValidation 就可以忽略这种证书无效的异常, 默认是SSL协议given().relaxedHTTPSValidation().when().get("证书无效或者证书过期的测试环境").then().statusCode(200).log().all();}/*** 处理TLS 异常*/public void testTLSExceptin() {given().relaxedHTTPSValidation("TLS").when().get("证书无效或者证书过期的测试环境").then().statusCode(200).log().all();}
}

本篇内容属于了解就行,不是重点。

这篇关于RestAssured接口自动化从入门到框架搭建-17-处理SSL和TLS协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050935

相关文章

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映