自动化测试框架搭建

发表于:2015-5-13 10:50

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

 作者:厚脸皮测试    来源:51Testing软件测试网采编

分享:
  构建JSON的API接口描述文件
  以下是一个简单的json用来描述API,主要有以下几个字段:
  ·queryParamters: 这个字段不是必须的,用来记录URL里面的可选参数,也就是在URL里面?之后的参数的
  ·pathParameters: 这个字段也不是一个必须要填写的,这个参数主要是用来记录URL中的参数在//之间的
  ·method:这个是必须要填写的,这是请求的方式,主要包括了get/post/delete/put等
  ·resourceURL:必须填写,用来标示请求资源的位置
  ·contentType:不是必须填写,如果请求的contentType是application/json,则可以不写,否则需要填写
  ·headers,不是必须填写,一般情况下可以不需要填写,因为默认的header值已经在工具类里设好了
  ·body: 如果请求没有body,可以不用填写,否则建议填写请求对应的JSON的类名(也不是必须要写的,目前框架还没有支持)
  事实上一上内容大部分不是必须要填写的,但是还是建议可以填写完成,或许以后会用到。
  {
  "queryParameters":["userCode", "password" ],
  "pathParameters":["ticketId","userId"],
  "method":"POST",
  "resourceURL":"/login",
  "contentType":"application/x-www-form-urlencoded",
  "headers":{"tokenId":"1234567432","Authorization":"890998776"} "body":"com.abcd.ddsf" }
  构建一个调用API的JAVA类
  以下是构建一个调用API的JAVA类的例子,需要做以下的事情: - 这个类需要继承BaseWebService - 起上一个和这个API做的事情相匹配的名字 - 指定描述那个API接口的JSON文件的路径 - 继承BaseWebService的构造函数
  public class LoginAPI extends BaseWebService { private final static String loginAPIDescriptionPath = "servicedescription/loginapi.json"; public LoginAPI(RequestData data) { super(loginAPIDescriptionPath, data);
  }
  }
  构建测试数据文件
  测试数据还是使用外部excel的方式,他的格式基本可以固定,如下例:img
  解释一下这个数据: RequestData.queryParameters(usercode), 表示queryParameter的一个key值是usercode,value就是用来进行数据驱动测试的值。
  那么如果需要body的值呢,只要excel新增一列,列的第一行名字是RequestData.body就可以,如果是JSON格式的,就把真实的JSON这里就可以
  如果是pathParameter,那么就是RequestData.pathParameters(${key}),${key}表示你的pathParameter的名字
  这个测试数据文件,需要放在Test的resource是目录里面,可以放在一个子目录里面。
  构建测试用例
  主要步骤包括: - 构建Dataprovider - 构建测试方法
  @DataProvider(name="login_data") public Iterator getLoginData(Method m) throws InvocationTargetException, Exception, IOException {
  Map clazzMap = new HashMap();
  clazzMap.put("RequestData", RequestData.class); // build的参数就是所在测试数据文件的位置 Iterator y= ExcelHelper.build("testcase/login/loginapitest.xls").loadExcelDataToIterator(clazzMap); return y;
  } @Test(dataProvider = "login_data") public void testLoginAPITes(RequestData data){
  LoginAPI api = new LoginAPI(data);
  api.execute(); //获取返回的类 System.out.println(api.getResponse()); //获取返回的状态代码,如200,302,401,500 ....... System.out.println(api.getResponse().getStatusCode()); //获取返回的包体 System.out.println(api.getResponse().getBody().toString()); //获取返回的header内容 System.out.println(api.getResponse().getHeaders()); //可以根据返回值内容进行验证 }
  具体的验证内容需要在得到返回值之后进行验证,由于每个接口的返回值都不一样,所以都需要定制这些检查点.
  API测试代码结构
  ·API类: 放置在apis目录里面
  ·JSON: 放置在resource的servicedescription目录下
  ·测试数据文件: 放置在resource的testcase下面目录下,可以起一个子目录,名字和API相匹配
  ·测试类: 放置在test目录相面
33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号