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

相关文章

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例