简单的传参
1. 使用场景
2.解决办法
...
@Data
@EqualsAndHashCode(callSuper = true)
public class AddBody extends Base {
/** 劳务公司编码 */
private String baseLabourCode;
/** 姓名*/
private String name;
}
...
3. 用例引用
...
AddBody addBody = new AddBody();
addBody.setBaseLabourCode("Test");
addBody.setName("测试用户");
Response res=context.getBean(Add.class).setBody(addBody).request();
Assert.assertEquals(res.getStatusCode(), 200, "接口返回状态码!=200");
Assert.assertEquals(res.getBody().jsonPath().getString("message"), "成功");
...
body中带object的传参
1. 使用场景
一般的传参我们可以简单处理;但是有些接口是这种比较复杂的传参,如下图所示,此接口是由两个object组成,且每个object下都有参数
2.解决办法
- 在request层,定义一个与目标相同结构的内部类,如果有其他接口同样需要这个类,可以提出为一个外部类
- 示例代码
...
@Data
@EqualsAndHashCode(callSuper = true)
public class SaveTalentBody extends Base {
/** 人员信息 */
private Person person;
/** 人员社会关系 */
private List<PersonSocialRelation> personSocialRelations;
@Data
@EqualsAndHashCode(callSuper = true)
public static class Person extends Base {
/** 主键id */
private String id;
/** 姓名 */
private String name;
}
@Data
public static class PersonSocialRelation {
/** 称谓 */
private String relations;
/** 姓名 */
private String name;
}
...
}
3. 用例引用
- 封装用例的时候,就可以先设置object参数,再设置body参数
...
private String getId() {
// 设置Person数据
SaveTalentBody.Person person = new SaveTalentBody.Person();
person.setName("公子" + CommonUtils.randomString(9999));
// 设置body
SaveTalentBody body = new SaveTalentBody();
body.setPerson(person);
// 使用工厂接口可以快速创建一个Api实例
Response res = context.getBean(SaveTalent.class).setBody(body).request();
Assert.assertEquals(res.getStatusCode(), 200, "人才库新增员工,返回状态码!=200");
Assert.assertEquals(res.getBody().jsonPath().getString("message"), "成功");
// 取出返回报文中的id,作为下一个接口的传参
return res.getBody().jsonPath().getString("result.id");
}
...