本文共 1438 字,大约阅读时间需要 4 分钟。
这篇简单记录下如何处理SSL和TLS异常,在接口测试中,SSL异常我们之前见过,早起网站都是http打头,然后15年还是16年什么时候,全部要求每个生产环境的网站都使用HTTPS协议,这个S就是安全的意思。关于HTTPS协议,不得不带出SSL和TLS协议。
1.网络知识
关于SSL和TLS的历史,英文好的可以看这里
中文看这里
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 { @BeforeClass public void setup() { RestAssured.useRelaxedHTTPSValidation(); } @Test public void testInvalidSSLException() { // 如果这样访问无效证书的https开头的网站,会报SSLPeerUnverifiedException异常 given().get("证书无效或者证书过期的测试环境").then().statusCode(200).log().all(); } /** * 处理无效SSL证书过期 不对的异常 */ @Test public 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(); }}
本篇内容属于了解就行,不是重点。
转载地址:http://jnows.baihongyu.com/