本文主要是介绍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协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!