好久木写啦!!!好久木写啦!!!
心血来潮分享点小白的东西!!!
废话少说直接干货!!!
本文核心是将如何从数据驱动开始,以报告结尾的形式来实现“很多刚入行朋友们”所需要的接口自动化
类型:驱动:excel
核心jar:httpclient
编译:maven(跟本文所讲有点沾不着边)
自动化框架 :testng(这个支持并发所以实现了并发的方法)
报告:ztest(有在之前tester老大哥的开源报告上实现了修改)
总结关键字:httpclient+maven+testng+ztest+excel
maven pom配置:
org.apache.httpcomponents
httpclient
4.5.5
com.alibaba
fastjson
1.2.47
org.testng
testng
6.14.3
test
其实实现可以很简单,因为在实现的过程中加入了并发的支持所以实现起来就变成了下面这样子(写的很水不喜勿喷)
请求类具体实现方式:
httpclient配置类:这个配置类主要目的分为三类
①如何支持https请求
②如何支持线程池
③自定义请求重试的机制
https是安全的ssl请求,官方给出的要想支持https请求就必须绕过请求证书,至于如何绕过需要实现一个X509TrustManager的接口
private static SSLContext createIgnoreVerifySSL() {
SSLContext sc = null;
try {
sc = SSLContext.getInstance("SSLv3");
} catch (NoSuchAlgorithmException e) {
logger.error("算法异常", e);
}
// 实现一个X509TrustManager接口,用于绕过验证,不用修改里面的方法
X509TrustManager trustManager = new X509TrustManager() {
public void checkClientTrusted(java.security.cert.X509Certificate[] paramArrayOfX509Certificate,
String paramString) throws CertificateException {
}
public void checkServerTrusted(java.security.cert.X509Certificate[] paramArrayOfX509Certificate,
String paramString) throws CertificateException {
}
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
};
try {
sc.init(null, new TrustManager[] { trustManager }, null);
} catch (KeyManagementException e) {
logger.error("密钥管理异常", e);
}
return sc;
}
这样子下来ssl的配置就有了,然后在httpclient里面实现线程池的方法里面配置这个就好了
这样子就得到了线程池的对象,然后再给线程池一顿配置,具体代码有注释解释
第三个请求自定义重试机制(也可使用默认的重试机制,不实现这个方法,去掉这个配置就好了setRetryHandler(myRetryHandler)),我偏不信邪我就喜欢重写一个
这样子下来我需要的一些配置就有了
public synchronized static CloseableHttpClient createClient() {
SSLContext sslcontext = createIgnoreVerifySSL();
// 验证http,https请求,使用默认的连接请求,如有自定义需要
// 请查看https://hc.apache.org/httpcomponents-client-4.5.x/tutorial/html/connmgmt.html#d5e449,官方自定义证书验证文档
Regis