![](https://img-blog.csdnimg.cn/ce64cfe857d04f73a7a7cdece8d45a91.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java接口框架开发
实现定制化接口测试
Gem丶超超
读万卷书,不如行万里路;行万里路,不如阅人无数;阅人无数,不如名师指路。
展开
-
四十一、java发送请求-接口数据函数表达式
java发送请求-接口数据函数表达式解决方案step1:修改Excel接口案例Req_data数据格式思路借鉴jmeter函数表达式,故Req_data用${__函数名(参数1,参数2)}表示表达式Functions函数表达式备注Time${__Time(,)}时间戳${__Time(YMDHMS,)}年月日时分秒 格式:2050-10-01 13:00:00${__Time(YMD,)}年月日 格式:2050-10-01${原创 2021-12-08 20:55:29 · 493 阅读 · 0 评论 -
四十、java发送请求-接口数据存储到数据库沉淀之TestRun优化
java发送请求-接口数据存储到数据库沉淀之TestRun优化代码public class TestRun { private String filePath = null; private static Logger logger = Logger.getLogger(TestRun.class); private List<AutoLog> list = new ArrayList<AutoLog>(); @Parameters({ "filePathPara原创 2021-11-25 00:02:30 · 589 阅读 · 0 评论 -
三十九、java发送请求-接口数据存储到数据库沉淀之PatternUtil工具类优化
java发送请求-接口数据存储到数据库沉淀之PatternUtil工具类优化代码public class PatternUtil { /* * 初始化 */ private static Map<String, String> map = new HashMap<String, String>(); private static String DepKeyValueRegex = "([\\w/]+):([\\$\\.\\w]+)";原创 2021-11-25 00:00:49 · 712 阅读 · 0 评论 -
三十八、java基于dbcp操作MySQL数据库之封装DbcpUtil工具类
java基于dbcp操作MySQL数据库之封装DbcpUtil工具类代码public class DbcpUtil { //初始化-pool全局共享 private static BasicDataSource pool = null; private static String paramSql = "INSERT INTO autolog(testCase, reqType, reqUrl, reqData, expResult, actResult, `result`, execTime原创 2021-11-24 00:19:40 · 95 阅读 · 0 评论 -
三十七、java基于dbcp操作MySQL数据库之BasicDataSource类
BasicDataSource类配置pom.xml文件(dbcp)<!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp --><dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4&l原创 2021-11-23 23:06:07 · 782 阅读 · 0 评论 -
三十六、java基于dbcp操作MySQL数据库之DataSource类
DataSource类源码位置rt.jar/javax.sql包下源码类public interface DataSource extends CommonDataSource, Wrapper认识DataSource 建数据库连接池包javax.sql.*:是对java.sql的补充提供了对连接池的支持包java.sql.*:包含生成连接,执行语句以及运行批处理语句,也有些高级功能如批处理,更新,可回滚结果,事务隔离等。抽象方法Connection getConnection()原创 2021-11-23 23:03:41 · 764 阅读 · 0 评论 -
三十五、java基于jdbc操作MySQL数据库之增删改方法封装
java基于jdbc操作MySQL数据库之增删改方法封装代码public class TestJDBC2 { private String url = "jdbc:mysql://ip:3306/数据库名?characterEncoding=utf-8&useSSL=false"; private String user = "user"; private String password = "password"; static { //加载驱动类到DM集合 try {原创 2021-11-18 22:31:15 · 655 阅读 · 0 评论 -
三十四、java基于jdbc操作MySQL数据库之查询方法封装
java基于jdbc操作MySQL数据库之查询方法封装代码public class TestJDBC1 { private String url = "jdbc:mysql://ip:3306/数据库名?characterEncoding=utf-8&useSSL=false"; private String user = "user"; private String password = "password"; static { //加载驱动类到DM集合 try {原创 2021-11-18 22:25:45 · 655 阅读 · 0 评论 -
三十三、java基于jdbc操作MySQL数据库之ResultSetMetaData类
java基于jdbc操作MySQL数据库之ResultSetMetaData类源码位置java.sql包下源码类public interface ResultSetMetaData extends Wrapper抽象方法int getColumnCount()int getColumnDisplaySize(int column)String getColumnLabel(int column)String getColumnName(int column)String getSche原创 2021-11-18 20:16:24 · 665 阅读 · 0 评论 -
三十二、java基于jdbc操作MySQL数据库之ResultSet类
java基于jdbc操作MySQL数据库之ResultSet类源码位置java.sql包下源码类public interface ResultSet extends Wrapper, AutoCloseable抽象方法boolean next()void close() String getString(int columnIndex)/(String columnLabel)boolean getBoolean(int columnIndex)/(String columnLabel)原创 2021-11-17 01:14:30 · 245 阅读 · 0 评论 -
三十一、java基于jdbc操作MySQL数据库之PreparedStatement类
java基于jdbc操作MySQL数据库之PreparedStatement类源码位置java.sql包下源码类public interface PreparedStatement extends Statement抽象方法ResultSet executeQuery()int executeUpdate()void setBoolean(int parameterIndex, boolean x)void setByte(int parameterIndex, byte x)void原创 2021-11-16 23:00:37 · 263 阅读 · 0 评论 -
三十、java基于jdbc操作MySQL数据库之Connection类
java基于jdbc操作MySQL数据库之Connection类源码位置java.sql包下源码类public interface Connection extends Wrapper, AutoCloseable抽象方法//此方法得到st对象,此对象发送sql到db,sql不能参数化,st对象不高效Statement createStatement()//此方法得到ps对象,此对象发送sql到db,sql可参or不参,ps对象高效 PreparedStatement prepa原创 2021-11-16 22:23:48 · 482 阅读 · 0 评论 -
二十九、java基于jdbc操作MySQL数据库之DriverManager类
java基于jdbc操作MySQL数据库之DriverManager类DriverManager源码位置java.sql包下DriverManager源码类public class DriverManagerDriverManager类方法public static Connection getConnection(String url, java.util.Properties info)public static Connection getConnection(String url,原创 2021-11-16 21:54:29 · 271 阅读 · 0 评论 -
二十八、java基于jdbc操作MySQL数据库之Class类及Driver类
java基于jdbc操作MySQL数据库之Class类及Driver类Class源码位置java.lang包下Class源码类public final class Class<T> implements java.io.Serializable, GenericDeclaration, Type, Annota原创 2021-11-16 21:23:41 · 721 阅读 · 0 评论 -
二十七、java发送请求-接口数据存储到数据库沉淀之java实体类-AutoLog
java发送请求-接口数据存储到数据库沉淀之java实体类-AutoLog实体类 实体类是用于对必须存储的信息和相关行为建模的类。实体对象(实体类的实例)用于保存和更新一些现象的有关信息,例如:事件、人员或者一些现实生活中的对象。实体类通常都是永久性的,它们所具有的属性和关系是长期需要的,有时甚至在系统的整个生存期都需要。概念实体类对应数据库里的一张表,实体类中的属性对应数据表中的字段定义1、实体类的名字和数据库的表的名字对应相同2、实体类有属性和方法,属性一般是private类原创 2021-11-16 15:40:54 · 139 阅读 · 0 评论 -
二十六、java发送请求-记录代码执行轨迹
java发送请求-记录代码执行轨迹配置pom.xml<!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency&g原创 2021-11-01 23:48:39 · 120 阅读 · 0 评论 -
二十五、java发送请求-接口数据依赖解决方案
场景:A接口的输出是B接口的输入核心:AB依赖接口的执行顺序策略:1、Excel接口测试案例增加两列Is_Dep、Dep_keyIs_Dep 判断此接口是否被依赖 ,YES代表被依赖,反之代表不被依赖Dep_key 此接口服务器返回值中的某个key,格式是:接口名:JSONPath表达式2、Excel接口测试案例依赖接口的Req_data列修改B key=被依赖A接口名:JSONPath表达式3、TestRun.java代码step1:isDep = YES 时需解析depKey;解析原创 2021-10-31 23:42:37 · 152 阅读 · 0 评论 -
二十四、接口测试-用例设计
IDTest_is_execTestCaseReq_typeReq_hostReq_interfaceReq_dataResult_expectedIs_DepDep_key1YES正确的账号和密码登录POSThttp://xxx.xxx.xxx.xxx:xxxx/xx/xx/xxid=123456&passwd=123456$.msg=管理员登陆成功;$.stateCode=1YES/api/loginCheck:$.msg2YES查...原创 2021-10-31 23:26:00 · 32 阅读 · 0 评论 -
二十三、testng二次开发之测试结果去重
testng二次开发-测试结果去重ITestListener源码类public interface ITestListener extends ITestNGListener抽象方法void onTestStart(ITestResult result);public void onTestSuccess(ITestResult result);public void onTestFailure(ITestResult result);public void onTestSkipped(IT原创 2021-10-26 23:03:40 · 136 阅读 · 0 评论 -
二十二、testng二次开发之用例失败重试
testng二次开发之用例失败重试IAnnotationTransformer源码类public interface IAnnotationTransformer extends ITestNGListener抽象方法public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod);ITestAnnotation源码类原创 2021-10-26 17:11:09 · 164 阅读 · 0 评论 -
二十一、优化testng将读取结果进行发送http请求并将服务器返回值与预期值进行比对
优化testng增加根据Excel接口测试案例读取内容进行发送http请求并将服务器返回值与Excel预期值进行比对import org.testng.Reporter;import org.testng.annotations.BeforeTest;import org.testng.annotations.DataProvider;import org.testng.annotations.Parameters;import org.testng.annotations.Test;imp原创 2021-10-26 17:06:49 · 94 阅读 · 0 评论 -
二十、实际值和预期值比对之封装PatternUtil工具类
实际值和预期值比对封装PatternUtil工具类代码import java.util.regex.Matcher;import java.util.regex.Pattern;import org.testng.Assert;import com.alibaba.fastjson.JSONPath;public class PatternUtil { private static String compareResultRegex = "(\\$[\\.\\w]+)=([\\u4e0原创 2021-10-26 16:57:15 · 89 阅读 · 0 评论 -
十九、java正则表达式提取预期值之Matcher类
Matcher类源码位置rt.jar/java.util.regex源码类public final class Matcher implements MatchResult构造方法//有2个default构造,但不能实例化Matcher() Matcher(Pattern parent, CharSequence text) 普通方法//全部匹配public boolean matches()//起点位置匹配到末尾public boolean find() //组原创 2021-10-26 16:54:28 · 133 阅读 · 0 评论 -
十八、java正则表达式提取预期值之Pattern类
Pattern类源码位置rt.jar/java.util.regex源码类public final class Pattern implements java.io.Serializable类方法//字符串正则表达式转换成真正的正则public static Pattern compile(String regex) 普通方法//匹配结果public Matcher matcher(CharSequence input) //案例1String str = "2021-原创 2021-10-26 16:52:59 · 74 阅读 · 0 评论 -
十七、正则表达式
正则规范字符相关:\ 匹配转义符, \ 表示1个\\n 匹配换行符[abc] 匹配abc其中1个字符[^abc] 除了a,b,c其他都可匹配 ^匹配以xx开头[a-z] 匹配a-z其中1个字符[a-zA-Z0-9] 匹配a-zA-Z0-9其中1个字符预定义字符相关:. 匹配任何字符\d 匹配[0-9]其中1个数字\s 匹配空格\w 匹配[a-zA-Z0-9_]其中1个字符数量词:X? 匹配前面1个X或1个X也没有X* 匹配前面0个X或多个XX+原创 2021-10-26 16:51:10 · 30 阅读 · 0 评论 -
十六、优化HttpRequestUtil工具类
优化HttpRequestUtil工具类代码import org.apache.http.HttpStatus;import org.apache.http.client.CookieStore;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.Htt原创 2021-10-26 16:43:06 · 111 阅读 · 0 评论 -
十五、封装JsonUtil工具类
判断是否为JSON封装JsonUtil工具类代码import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;public class JsonUtil { private JsonUtil() {} public static boolean isJsonStr(String jsonStr) { try { JSO原创 2021-10-26 16:40:55 · 37 阅读 · 0 评论 -
十四、解析服务器返回值之JSONPath类
JSONPath类源码位置配置pom.xml:<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.78</version>&原创 2021-10-26 16:38:49 · 153 阅读 · 0 评论 -
十三、解析服务器返回值之JSONObject类
JSONObject类源码位置配置pom.xml:<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.78</version>原创 2021-10-26 16:36:59 · 161 阅读 · 0 评论 -
十二、解析服务器返回值之JSON类
JSON类源码位置配置pom.xml:<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.78</version></原创 2021-10-26 16:13:35 · 77 阅读 · 0 评论 -
十一、发送http请求之封装HttpRequestUtil工具类
发送http请求封装HttpRequestUtil工具类代码import org.apache.http.HttpStatus;import org.apache.http.client.CookieStore;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.me原创 2021-10-26 15:51:43 · 167 阅读 · 0 评论 -
十、java发送请求之HttpClientBuilder源码类
HttpClientBuilder源码类原创 2021-10-26 15:30:26 · 173 阅读 · 0 评论 -
九、java发送请求之RequestConfig源码类
RequestConfig源码类原创 2021-10-26 15:28:11 · 157 阅读 · 0 评论 -
八、java发送请求之Post请求源码
post请求源码原创 2021-10-26 15:23:59 · 188 阅读 · 0 评论 -
七、java发送请求之Get请求源码
get请求源码原创 2021-10-26 15:21:16 · 54 阅读 · 0 评论 -
六、testng+reportng
官网:http://testng.org/doc/documentation-main.html注解:@DataProvider数据驱动name不指定,则方法名被自动指定为数据驱动名;指定,则指定名为数据驱动名。parallel默认false,即数据驱动非并行;设置为true即为并行;并行–2个线程以上,使用标准由实际业务来定@Test 测试Marks a class or a method as part of the test.将类或方法标记为测试的一部分dataProvid原创 2021-10-26 15:04:55 · 136 阅读 · 0 评论 -
五、java基于poi源码操作excel之封装ExcelUtil工具类
读取Excel文件内容封装ExcelUtil工具类import org.apache.poi.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class ExcelUtil { private S原创 2021-10-25 21:59:44 · 250 阅读 · 0 评论 -
四、java基于poi源码操作excel之XSSFCell源码类
XSSFCell源码类pom配置<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version></depend原创 2021-10-22 16:08:53 · 428 阅读 · 0 评论 -
三、java基于poi源码操作excel之XSSFRow类源码
XSSFRow类源码pom配置<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version></depende原创 2021-10-22 15:18:32 · 541 阅读 · 0 评论 -
二、java基于poi源码操作excel之XSSFSheet源码类
XSSFSheet源码类pom配置<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version></depen原创 2021-10-22 15:03:40 · 61 阅读 · 0 评论