java 接口测试
学习java 时间也不算太长,大学有点基础,学起来也顺手多了,其实我感觉更是因为学习完python之后,在学习别的语言的时候就简单多了,几乎所有的语言学起来都差不多。前几篇写过的都是python接口测试,开源的接口测试代码,https://github.com/liwanlei/jiekou-python3 ,好评如潮。
啥都不说,学会点java我就想实践,毕竟是实践出真知。
其实这个目录结构也是很简单的,根据文件的名字就能猜测到这里是干什么呢,那么接下来,我们来看看这里的庐山真面目。本次才用了是testng测试框架,利用ztest做测试报告,才用测试数据驱动的方式来编写测试用例,
Urlconnetc.java
/**
*
*/
package com.testapi.until;
import java.io.DataOutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* @author lileilei
*Urlconnetc.java
*/
public class Urlconnetc {
/*
* 对http请求的简单的封装
*/
public static HttpURLConnection getConnection(String url,String meth,String param){
HttpURLConnection connection = null;
try {
URL postUrl = new URL(url);
DataOutputStream out=null;
connection = (HttpURLConnection) postUrl.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setRequestMethod(meth);
connection.setInstanceFollowRedirects(true);
connection.setRequestProperty("Content-Type","application/json");
connection.setRequestProperty("Accept","application/json");
connection.setInstanceFollowRedirects(true);
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
}
ParseJson,java
/**
*
*/
package com.testapi.until;
import com.google.gson.Gson;
/**
* @author lileilei
*
*/
public class ParseJson {
/*
*解析返回的json ֵ
*/
public static String Json(String jsStrings) {
String result;
if(jsStrings==null) {
result=null;
return result ;
}try {
Gson gson=new Gson();
Json json=gson.fromJson(jsStrings, Json.class);
result=json.code;
return result ;
} catch (Exception e) {
// TODO: handle exception
result=null;
return result ;
}
}
}
Makejson.java package com.testapi.until;
import java.util.HashMap;
import com.google.gson.Gson;
public class Makejson {
/*
* 传入字符串,转成json格式
*/
public static String makejson(String map) {
Gson gson=new Gson();
String param1=gson.toJson(map);
return param1;
}
}
Json.java package com.testapi.until; public class Json {
public String code;
public String text; }
getcode.java /**
*
*/
package com.testapi.until; import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.util.ArrayList;
import java.util.HashMap; import javax.swing.SortingFocusTraversalPolicy; import com.google.gson.Gson;
import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List; /**
* @author lileilei
*
*Getcode.java
*/
public class Getcode {
private String url="";
public String geturl() {
return url;
}
public String getHttpResponse(String parm,String baseurl,String path,String meth) {
String line="";
String resulst="";
url=baseurl+path;
try {
HttpURLConnection connection=Urlconnetc.getConnection(url, meth,parm);
DataOutputStream out=null;
connection.connect();
out = new DataOutputStream(connection.getOutputStream());
out.writeBytes(parm.toString());
out.flush();
out.close();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while ((line = reader.readLine()) != null) {
resulst = resulst + line.toString();
}
reader.close();
connection.disconnect();
} catch (Exception e) {
// TODO: handle exception
}
return resulst;
}
}
测试用例文件
package com.testapi.cas;
import static org.testng.Assert.assertEquals; import java.util.HashMap;
import org.testng.annotations.*;
import com.google.gson.Gson;
import com.testapi.until.Getcode;
import com.testapi.until.Makejson;
import com.testapi.until.ParseJson;
import com.testapi.until.ZTestReport;
@Listeners({ZTestReport.class})
public class NewTest {
@DataProvider(name="DP1")
public Object[][] createData(){
return new Object[][] {
{ "{'key':'你好!'}","http://www.tuling123.com", "/openapi/api", "POST","text" ,"40007"}, { "{'key':'你好!'}","http://www.tuling123.com", "/openapi/api", "POST" ,"text","40007"},
{ "{'key':'你好!'}","http://www.tuling123.com", "/openapi/api", "POST" ,"text","40007"}, { "{'key':'你好!'}","http://www.tuling123.com", "/openapi/api", "POST","text","40007"}
};
}
@Test(dataProvider="DP1")
public void f(String map,String url,String path,String meth,String jsonid,String qiwang) {
String param1 = Makejson.makejson(map);
Getcode getcode=new Getcode();
String resulst=getcode.getHttpResponse(param1, url, path,meth.toUpperCase());
String bnei=ParseJson.Json(resulst);
assertEquals(bnei,qiwang);
}
@BeforeTest
public void beforeTest() {
}
@AfterTest
public void afterTest() {
} }
然后利用testng run来测试
最后的测试报告的html
测试报告来源于飞总的开源的测试报告: https://github.com/zhangfei19841004/ztest
感谢大神开源这么牛逼的测试报告,python版本的测试报告:来源于mock哥https://github.com/TesterlifeRaymond/BeautifulReport
感谢大神的开源,
开源代码地址:https://github.com/liwanlei/java_jiekou
作者寄语:
前进的道路我们充满着迷茫,
前进的每一步我们都会有收获。
路在脚下,我们决定不了我们的出身,但是我们可以努力改变我们未来。
告别昨天失败的自己,努力拼搏今天,成就美好明天
java 接口测试的更多相关文章
- 0312 java接口测试三棱军刺rest-assured
背景 java程序员一般写的是后端服务是JavaWeb类型的项目,主要包括Http接口和dubbo接口,Http接口一般采用的rest风格,那么如何快速的对rest接口在第三方的测试框架上进行测试呢? ...
- java 接口测试,使用excel做数据驱动(二)
承接上篇. 改变我们的测试驱动方式,灵活设置测试用例. 数据驱动测试 数据驱动测试的核心是: 测试数据与测试脚本分离,实现测试脚本参数化, 提高测试脚本的可重用性.在自动化功能测试中如果灵活使用数据源 ...
- java接口测试入门
一.什么是接口 接口是前端和后端的数据通道 二.如何获取接口 1.开发不提供接口文档,通过抓包工具比如fiddler进行抓取,如下: 步骤一:设置浏览器(比如火狐)代理 步骤二:设置url过滤器,进入 ...
- JAVA接口测试类
package etcom.servlet; import java.io.BufferedReader; import java.io.InputStreamReader; import java. ...
- 接口测试专题(Java & jmeter & Linux基础)
以下是我和两个朋友原创文章合集,主题是接口测试,有Java接口测试案例和jmeter的案例,还有接口测试相关服务器操作基础.欢迎点赞.关注和转发. 接口测试 httpclient处理多用户同时在线 h ...
- Redis入门——Java接口
1. maven配置 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis&l ...
- LoadRunner+Java接口性能测试
想必各位小伙伴们会对LR还可以调用java感到好奇,之前我也这么一直认为LR只支持C语言.其实LR脚本支持的语言有:C.Java.Visual Basic.VbScript.JavaScript,只不 ...
- Java自动化环境搭建笔记(1)
Java自动化环境搭建笔记(1) 自动化测试 先搭建java接口测试的环境: 使用mvn命令构建项目 测试集通过testNG.xml组织并运行 测试数据解耦,通过Excel等文件提供 基础依赖 创建m ...
- 28.zookeeper单机(Standalones模式)和集群搭建笔记
zookeeper单机(Standalones模式)和集群搭建: 前奏: (1).zookeeper也可以在windows下使用,和linux一样可以单机也可以集群,具体就是解压zookeeper-3 ...
随机推荐
- SQL2005清空删除日志
代码如下: Backup Log DNName with no_log '这里的DNName是你要收缩的数据库名,自己注意修改下面的数据库名,我就不再注释了.godump transaction D ...
- Jni中C++和Java的参数传递(转)
如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么的,如何建立一个基本的jni程序,或许可以参考下面下面这些文章:利用VC++6.0实现JNI的最简单的例子 ...
- Problem K
Problem Description The local toy store sells small fingerpainting kits with between three and twelv ...
- code force 403C.C. Andryusha and Colored Balloons
C. Andryusha and Colored Balloons time limit per test 2 seconds memory limit per test 256 megabytes ...
- 一起写框架-Ioc内核容器的实现-基础功能-ComponentScan(四)
功能说明 该步骤实现的功能包括: 1. 启动程序时,将@ComponentScan加载的类,创建对象并放在容器里面. 2. 通过ApplicatoinContext的getBean()方法获得容器里面 ...
- 如何部署Java_web项目到云服务器上
步骤 1:购买 Linux 实例(略) 步骤2:安装JDK 本节介绍如何安装java jdk. 软件包中包含的软件及版本如下: Tomcat:1.8.0_121 说明:这是写文档时参考的软件版本.您下 ...
- Node.js初探之GET方式传输
Node.js初探之GET方式传输 例子:form用GET方法向后台传东西 html文件: <form action="http://localhost:8080/aaa" ...
- 处理ASP.NET Core中的HTML5客户端路由回退
在使用由Angular,React,Vue等应用程序框架构建的客户端应用程序时,您总是会处理HTML5客户端路由,它将完全在浏览器中处理到页面和组件的客户端路由.几乎完全在浏览器中... HTML5客 ...
- ListView中点击Item没有任何响应
不多说,上代码:如下图 红色方框的东西, android:descendantFocusability=”blocksDescendants” 如果不添加的话,在android的8.0手机上点击没有响 ...
- [转载] 应用于负载均衡的一致性哈希及java实现
转载自http://blog.csdn.net/haitao111313/article/details/7537799 这几天看了几遍一致性哈希的文章,但是都没有比较完整的实现,因此试着实现了一下, ...