java接口自动化,基于SpingBoot架构

1:环境准备:jdk1.8
依赖管理:maven
代码管理:git

 二、框架结构

data ————————————————测试数据目录
| rus ————————————————项目目录(不同项目不同名称)
| | searchbydetail.json —————————测试数据文件
| | search.csv ————————————数据驱动文件
report —————————————————测试报告目录
src
| main
| | java
| | | com.tal.seg.autotest
| | | | commontools ——————实体类等目录
| | | | rus ———————————项目目录
| | | | | QuestionSearch.java ———测试用例文件
| | | | utils —————————— 工具类目录

三:项目配置:
java接口自动化,基于SpingBoot架构_第1张图片
说明:配置文件分别对应开发、线上、测试环境,可将项目中的url和数据库信息写到相应的文件中。通过@value引用url进行使用。
@Value(“${recommendEngine.url}”)
public String recommandUrl;

通过application.properties 设置激活dev test pro 环境
java接口自动化,基于SpingBoot架构_第2张图片

    通过![在这里插入图片描述](https://img-blog.csdnimg.cn/cc6828ab48724b73a779893b0131f8eb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd2VpeGluXzQyMzU0MTk5,size_13,color_FFFFFF,t_70,g_se,x_16)

四、测试用例组成
1、测试用例文件:提供请求头,请求方法等信息(对应框架示例中的QuestionSearch.java);
2、测试数据文件:
1)数据驱动文件:提供用例序号,测试用例描述,请求体文件位置,预期结果等信息(对应框架示例中的search.csv);
在这里插入图片描述

请求体文件:提供请求体信息(对应框架中的searchbydetail.json)
java接口自动化,基于SpingBoot架构_第3张图片
五、测试用例编写
1、获取文件所在目录
在这里插入图片描述
说明:rus可替换为自己起的项目名称。
2、获取测试数据

(1)数据驱动方式,通过读取测试数据文件列表作为测试用例。

java接口自动化,基于SpingBoot架构_第4张图片

说明:
@BeforeClass:在调用当前类中的第一个测试方法之前运行,只执行一次;
@DataProvider: 数据驱动文件;
@Test:获取测试数据执行用例;注意参数要与数据驱动文件中的参数个数保持一致;
注意:
一个文件中可以包含多个@Test和@DataProvider;
@DataProvider中的name要和@Test中的dataProvider保持一致;
java接口自动化,基于SpingBoot架构_第5张图片
注意:参数个数要与数据参数文件一致

3 单个测试数据文件作为一个测试用例

java接口自动化,基于SpingBoot架构_第6张图片
说明:直接以searchbyteach.json作为测试数据文件。

4)从数据库获取数据
java接口自动化,基于SpingBoot架构_第7张图片
3、调用接口
根据需要添加请求头:
在这里插入图片描述

根据请求地址,请求体,请求头参数调用接口:
在这里插入图片描述
支持doPostJson,doPost,doGet等方法,具体可参见Utils目录下的HttpUtils.java。
4、断言
1)org.testng.Assert 用来校验接口测试的结果,提供多个断言的方法可直接使用:
fail 直接失败测试用例,可以抛出异常。
assertTrue 判断是否为true;
assertFalse 判断是否为false;
assertNull 判断是否为null;
assertNotNull 判断是否不为null;
assertEquals 判断是否相等;
assertNotEquals 判断是否不相等;
assertEqualsNoOrder 判断忽略顺序是否相等;

2)直接调用utils.Commontools.assertResult方法,验证返回值中的

java接口自动化,基于SpingBoot架构_第8张图片
3) 直接调用utils.Commontools.assertResult方法,验证返回值中的code,message,适用于入参错误/传参错误,message给出提示信息的情况

java接口自动化,基于SpingBoot架构_第9张图片
4)对返回结果进行自定义验证,如判断是否包含某个字符串,字符串出现次数等;
5、执行
支持对单个方法、文件或者testng.xml执行测试用例;testing-all.xml中可以包括多个测试用例文件,并且同时可建立多个testng.xml文件,为每个项目配置对应的testng.xml文件。
java接口自动化,基于SpingBoot架构_第10张图片
六、日志
使用logback打印日志到控制台:

private static final Logger logger = LoggerFactory.getLogger(UseLogback.class);
logger.debug(“–> Hello debug.”);
logger.info(“–> Hello in
fo.”);logger.warn(“–> Goodbye warn.”);
logger.error(“–> Goodbye error.”);

七、测试报告
使用extentReport生成测试报告,常用语句示意如下:
1、测试报告名称及存放位置
java接口自动化,基于SpingBoot架构_第11张图片
6;执行成功后会自动显示在report目录下,示例:
java接口自动化,基于SpingBoot架构_第12张图片

你可能感兴趣的:(java,maven,intellij-idea)