接口测试平台中接口内容的设计

发表于:2019-11-27 11:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:简单随风    来源:软件测试君

  我们从表结构开始:
  1、基础信息部分
  这部分主要是该条case的一些基础信息,例如创建人、最后更新人(同时也是最后调试过该case的人)。因为我们的平台有一个登录系统,所以所有case在被创建和被编辑的时候,会自动保存对应操作人的信息。
  2、接口信息
  这部分就是基础的接口信息。例如url、path、端口号等,在此不做过多叙述。
  3、请求参数
  这部分主要是配置接口的请求参数,例如header、body之类的,json会直接存为string,而form会以key value的形式,转成json类型的string,在下文会做详细说明。
  4、返回参数
  这里是做参数依赖和断言的关键。
  例如我们在B接口中,需要依赖A接口的返回值,以下文截图为例:
  将截图部分视为A接口,如果B接口中需要用到A接口返回的"success"的值,则以jsonPath或正则表达式的方式,将该字段值提取出来,然后设置变量名为SUCCESS,然后在B接口中,使用该参数时,传递${SUCCESS}即可。
  校验:真实值的取值方式,也支持jsonPath和正则表达式的方式两种方式,然后与预期值的对比,目前只支持equals(相等)和contains(包含)两种。emm… 目前只支持body的校验。
  当我们的接口在执行时,拿到返回结果后,会逐一检查校验条件是否都满足,只要有一条不满足,则会显示调试失败。
  这里是bean文件,可以做个对比。
   @Data
  public class TestCase {
  /** 主键id */
  private int id;
  /** 创建人 */
  private String createrName;
  /** 创建人code */
  private String createrCode;
  /** 创建时间 */
  @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
  private Date createDate;
  /** 更新人 */
  private String updaterName;
  /** 更新人 */
  private String updaterCode;
  /** 更新时间 */
  @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
  private Date updateDate;
  /** 所属系统名称 */
  private String systemName;
  /** 接口名称 */
  private String apiName;
  /** url */
  private String apiUrl;
  /** 端口号 */
  private Integer apiPort;
  /** 请求方式 */
  private String apiMethod;
  /** 请求路径 */
  private String apiPath;
  /** 备注 */
  private String description;
  /** headers
  * 第一个为PO,第二个为VO,以下内推
  */
  private String headerValue;
  private List<RequestHeaders> headerForm;
  /**
  * body类型
  * 1.json  2.url form
  */
  private int bodyType;
  /** body-json */
  private String jsonValue;
  /** body-urlform */
  private String formValue;
  /** 需要保存的变量 */
  private String variableListValue;
  private List<VariableSave> variableList;
  /** 校验方式 */
  private String expectedListValue;
  private List<Expected> expectedList;
  /** 最后一次请求状态 */
  private Boolean status;
  /** 响应结果 */
  private String result;
  }
  最后,对header、保存变量和校验方式的存储做一个说明。
  以该条“保存变量”为例:

  extractMethod对应的是变量的提取方式,extractRule是提取规则,variableName为变量名。
   [{"extractMethod":1,"extractRule":"$.success","variableName":"SUCCESS"},
  {"extractMethod":2,"extractRule":".*?","variableName":"ALL"}]
  header、保存变量和校验方式均由以上形式,以JSONArray的方式存入数据库
  下篇文章将会讲解接口的具体执行部分(因为这两篇文章加起来,就可以做一个接口自动化框架了~~),有疑问的小伙伴可在文章下方留言,我会不断优化文章的内容!

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号