GitHub:https://github.com/reese0329/testng
接口测试用例编写
Testng使用
断言使用
接口测试框架Rest assured使用
Jsonschema的使用
接口测试主要关注点
响应结构
数据来源
数据格式
数据正确性
业务逻辑
用例设计—参数要考虑的
用例设计—结果要验证的
数据库交互是否生效: 点赞,数据库数据变化
用例的管理与维护
•功能测试模式:为了更快速会选用EXCEL、思维导图进行用例管理。
•自动化测试模式:使用测试脚本进行管理。
注:
对于接口的提测,建议是分批提测,最好不要所有接口统一提测,分批测试可以在较短的时间内完成接口测试,也可以提前辅助客户端进行联调,不会占用较长的项目周期。
接口需求分析
结合需求文档+接口文档来进行对照分析
•分析出需求文档中所有涉及接口的功能点,并罗列功能点相关业务逻辑
•分析接口功能点是否包含在了接口文档中
•分析接口文档中描述的实现是否能够满足或者覆盖接口功能点及其业务逻辑
•是否需要上层服务支持,服务端是否已提交数据需求
建议先与服务端达成一致:
•需求宣讲完成后,优先产出接口文档(便于测试同学进行接口分析)
•接口文档与客户端先行确认,再进行接口开发(预防后续反工的风险)
•服务端提供接口开发排期表(方便进行测试排期)
16'
37'
在pom.xml中引入testng测试框架
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.1.1</version>
<scope>test</scope>
</dependency>
demo
import org.testng.annotations.Test;
public class testng {
@Test
public void abc(){
System.out.println("这里是abc");
}
}
将功能测试用例转换为脚本
运行多个测试用例
testng_base.java
import org.testng.annotations.Test;
public class testng {
@Test
public void abc(){
System.out.println("这里是abc");
}
@Test
public void abc1(){
System.out.println("这里是abc1");
}
@Test
public void abc2(){
System.out.println("这里是abc2");
}
}
常用注解使用:
1.@BeforeClass @AfterClass 在运行类之前或之后执行一次
@BeforeClass 中可写入初始数据
@AfterClass 清除数据
testng_before_after_class.java
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class testng_before_after_class {
// 运行testng_before_after_class类的时,会执行一次
@BeforeClass
public void BeforeClass(){
System.out.println("BeforeClass被运行");
}
@AfterClass
public void AfterClass(){
System.out.println("AfterClass被运行");
}
// 运行每个测试方法进都会被执行到
@Test
public void abc(){
System.out.println("这里是abc");
}
@Test
public void abc1(){
System.out.println("这里是abc1");
}
@Test
public void abc2(){
System.out.println("这里是abc2");
}
}
创建xml文件
class name需要与测试的class类名一致
一个测试套件可以包含多个类
<?xml version="