java 接口测试

简介: 笔记

学习java 时间也不算太长,大学有点基础,学起来也顺手多了,其实我感觉更是因为学习完python之后,在学习别的语言的时候就简单多了,几乎所有的语言学起来都差不多。前几篇写过的都是python接口测试,开源的接口测试代码,https://github.com/liwanlei/jiekou-python3  ,好评如潮。

   啥都不说,学会点java我就想实践,毕竟是实践出真知。

15.png

其实这个目录结构也是很简单的,根据文件的名字就能猜测到这里是干什么呢,那么接下来,我们来看看这里的庐山真面目。本次才用了是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来测试

16.png

最后的测试报告的html

17.png

测试报告来源于飞总的开源的测试报告: https://github.com/zhangfei19841004/ztest    

 


相关文章
|
15天前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
31 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
1天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
15 6
|
1天前
|
存储 Java 数据处理
Set 是 Java 集合框架中的一个接口,不包含重复元素且不保证元素顺序。
【10月更文挑战第16天】Java Set:无序之美,不重复之魅!Set 是 Java 集合框架中的一个接口,不包含重复元素且不保证元素顺序。通过 hashCode() 和 equals() 方法实现唯一性,适用于需要唯一性约束的数据处理。示例代码展示了如何使用 HashSet 添加和遍历元素,体现了 Set 的高效性和简洁性。
11 4
|
3天前
|
存储 Java 数据处理
Set 是 Java 集合框架中的一个接口,不包含重复元素且不保证元素顺序。
Java Set:无序之美,不重复之魅!Set 是 Java 集合框架中的一个接口,不包含重复元素且不保证元素顺序。它通过 hashCode() 和 equals() 方法确保元素唯一性,适用于需要唯一性约束的数据处理。示例代码展示了如何使用 HashSet 实现这一特性。
12 5
|
1天前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
7 2
|
3天前
|
存储 Java 数据处理
在Java集合框架中,Set接口以其独特的“不重复”特性脱颖而出
【10月更文挑战第14天】在Java集合框架中,Set接口以其独特的“不重复”特性脱颖而出。本文通过两个案例展示了Set的实用性和高效性:快速去重和高效查找。通过将列表转换为HashSet,可以轻松实现去重;而Set的contains方法则提供了快速的元素查找功能。这些特性使Set成为处理大量数据时的利器。
12 4
|
3天前
|
Java
Java Set 是一个不包含重复元素的集合接口,确保每个元素在集合中都是唯一的
【10月更文挑战第14天】Java Set 是一个不包含重复元素的集合接口,确保每个元素在集合中都是唯一的。本文介绍了 Set 的独特特性和两个常用实现类:基于哈希表的 HashSet 和基于红黑树的 TreeSet。通过示例代码展示了它们如何高效地处理唯一性约束的数据。
15 3
|
2天前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
9 1
|
3天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。
【10月更文挑战第14天】从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。本文深入探讨Set的核心理念,并通过示例代码展示了HashSet和TreeSet的特点和应用场景。
9 2
|
3天前
|
存储 Java 索引
Java 中集合框架的常见接口和类
【10月更文挑战第13天】这些只是集合框架中的一部分常见接口和类,还有其他一些如 Queue、Deque 等接口以及相关的实现类。理解和掌握这些集合的特点和用法对于高效编程非常重要。