HttpClient之接口测试
来源:互联网 发布:张国荣热门知乎 编辑:程序博客网 时间:2024/05/01 09:56
HttpClient之接口测试:
首先,用Maven来构建第三方依赖:
<dependency> <groupId>org.codehaus.jettison</groupId> <artifactId>jettison</artifactId> <version>1.3.8</version></dependency><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.6</version></dependency><dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version></dependency>
1、先是GET请求:
import org.apache.http.HttpEntity;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;import org.testng.Assert;import org.testng.Reporter;import org.testng.annotations.DataProvider;import org.testng.annotations.Test;import java.io.IOException;public class LoginHomepage { @Test(dataProvider = "homepage") //打开3个首页的接口测试用例 public void loginHomepage(String case_1, String url, String assert_1) throws IOException { CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建默认的httpClient实例 RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(20000).setConnectionRequestTimeout (15000).setSocketTimeout(20000).build(); //设置连接超时时间和获取数据超时时间 HttpGet httpget = new HttpGet(url); //创建GET方法的实例,并传入待连接的地址 httpget.setConfig(requestConfig); httpget.addHeader("content-type", "application/x-www-form-urlencoded; charset=UTF-8"); //设置请求头 CloseableHttpResponse response = httpclient.execute(httpget); // 执行get请求,调用第一步中创建好的实例的execute方法来执行第二步中创建好的method实例 HttpEntity entity = response.getEntity(); // 读response,获取响应实体 String getResult = EntityUtils.toString(entity, "UTF-8");//读入内容流,并以字符串形式返回 getResult = getResult.replaceAll("[^\\u4e00-\\u9fa5]", "");//只匹配汉字 if (getResult != null) { System.out.println(case_1); System.out.println("接口响应:" + getResult + "\n"); // 打印响应内容 EntityUtils.consume(entity);//关闭内容流 } httpclient.close(); //关闭连接 Assert.assertEquals(assert_1, getResult); //断言 Reporter.log(case_1); //输出报告 } @DataProvider(name = "homepage") //将数据集合命名为"homepage" public static Object[][] words() throws IOException { return ReadExcel.getTestData("src/main/resources/", "interface_homepage.xlsx", "Sheet1"); //调用静态方法getTestData,获取Excel文件的测试数据 }}
现在跑一把:"C:\Program Files\Java\jdk1.8.0_31\bin\java"
成功打开公会登录页的接口
接口响应:登录欢迎使用直播助手手机号手机密码密码登录注册通行证忘记密码其他登录方式登录微信登录微博登录
成功打开主播登录页的接口
接口响应:登录欢迎使用直播助手手机号手机密码密码登录注册通行证忘记密码其他登录方式登录微信登录微博登录
成功打开公会后台的接口
接口响应:统计数据统计数据统计数据用户名密码用户名或密码错误登陆
===============================================
Default Suite
Total tests run: 3, Failures: 0, Skips: 0
===============================================
Process finished with exit code 0
这是Excel配置文件:
2、再是POST请求:
import org.apache.commons.lang.StringEscapeUtils;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import org.testng.Assert;import org.testng.Reporter;import org.testng.annotations.DataProvider;import org.testng.annotations.Test;import java.io.IOException;import java.util.ArrayList;import java.util.List;public class Login_Houtai { @Test(dataProvider = "loginHoutai") //登录后台的接口测试用例 public void loginHoutai(String case_1, String url, String name, String password, String assert_1) throws IOException { CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建默认的httpClient实例 RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(20000).setConnectionRequestTimeout (15000).setSocketTimeout(20000).build(); //设置连接超时时间和获取数据超时时间 HttpPost httppost = new HttpPost(url); //创建Post请求的实例,并传入待连接的地址 httppost.setConfig(requestConfig); httppost.addHeader("content-type", "application/x-www-form-urlencoded; charset=UTF-8"); //设置请求头 List<NameValuePair> formparams1 = new ArrayList<NameValuePair>(); //创建Post请求参数队列 //表单中的域用类NameValuePair来表示,该类的构造函数第一个参数是域名,第二参数是该域的值; formparams1.add(new BasicNameValuePair("username", name)); formparams1.add(new BasicNameValuePair("pwd", password)); httppost.setEntity(new UrlEncodedFormEntity(formparams1, "UTF-8"));//设置表单的编码格式 HttpResponse response = httpclient.execute(httppost); // 执行post请求,调用第一步中创建好的实例的execute方法来执行第二步中创建好的method实例 HttpEntity entity = response.getEntity(); // 读response,获取响应实体 String postResult = EntityUtils.toString(entity, "UTF-8");//读入内容流,并以字符串形式返回 String responses = StringEscapeUtils.unescapeJava(postResult); //把Unicode编码转中文 responses = responses.replaceAll("[^\\u4e00-\\u9fa5\\,]", "");//匹配汉字和逗号 if (responses != null) { System.out.println(case_1); System.out.println("接口响应:" + responses + "\n"); // 打印响应内容 EntityUtils.consume(entity);//关闭内容流 } httpclient.close(); //关闭连接 Assert.assertEquals(assert_1, responses); //断言 Reporter.log(case_1); //输出报告 } @DataProvider(name = "loginHoutai") //将数据集合命名为"loginHoutai" public static Object[][] words() throws IOException { return ReadExcel.getTestData("src/main/resources/", "interface_houtai.xlsx", "Sheet1"); //调用静态方法getTestData,获取Excel文件的测试数据 }}
成功的登录后台的接口
接口响应:登陆成功
密码错误的登录后台的接口
接口响应:登陆失败,密码错误
用户名错误的登录后台的接口
接口响应:登陆失败,用户不存在
用户名和密码都错误的登录后台的接口
接口响应:登陆失败,用户不存在
用户名为空的登录后台的接口
接口响应:登陆失败,用户密码不能为空
密码为空的登录后台的接口
接口响应:登陆失败,用户密码不能为空
===============================================
Default Suite
Total tests run: 6, Failures: 0, Skips: 0
===============================================
Process finished with exit code 0
这是Excel配置文件:
- 接口测试之HttpClient
- HttpClient之接口测试
- testNG+httpclient接口测试
- 接口测试 - httpClient
- HttpClient天气接口测试
- HttpClient测试接口Test
- 使用HttpClient实现接口测试
- 使用httpClient进行接口测试
- 接口测试及httpclient深入
- 接口测试及httpclient深入
- HttpClient接口测试问题汇总
- httpclient自己写接口性能测试脚本
- 使用HttpClient进行远程接口测试
- 使用HttpClient测试SpringMVC的接口
- Excel+Httpclient,数据驱动接口自动化测试
- HttpClient +Testng(1)进行接口测试入门
- Url接口测试:HttpClient模拟登录效果
- 【接口测试】:HttpClient Post 和 Get 请求
- 1125. Chain the Ropes (25)
- 构造函数(构造器)
- 前行
- 求直线(线段)与直线(线段)的交点
- 淘宝网页价格爬虫
- HttpClient之接口测试
- HashMap和Hashtable的区别
- HDU 1079
- 文件的读写,io流
- 自定义两个shiro过滤器
- command: pybot.bat --argumentfile c:\users\keikei\appdata\local\temp\RIDEama2ym.d\argfile.txt --list
- 前端开发(HTML+CSS静态部分)
- Java中final关键字的使用
- 洛谷 P2679子串