自动化测试框架搭建
作者:网络转载 发布时间:[ 2015/5/14 11:07:53 ] 推荐标签:软件测试
构建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目录相面
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
手工测试与自动化测试的区别如何提升接口自动化测试效率?手动测试和自动化测试的区别自动化测试真实项目工作流程,5个重要阶段自动化测试自行脚本后怎么查看日志?使用AR查看日志方法了解ios自动化测试要知道哪些知识?两种自动化测试工具AutoRunner与Selenium的对比给你一个网站,你如何来做自动化测试的?Web网站测试流程及方法Android自动化测试框架有哪些?有什么用途?什么样的项目适合做自动化?自动化测试人员应具备怎样的能力?为什么要进行自动化测试?自动化测试发展的怎么样了?如何对微信小程序进行自动化测试?自动化测试的行业现状是怎样的?未来的发展方向在哪?自动化测试很难,那么软件测试为什么要坚持自动化呢?关于Selenium自动化测试框架的较佳设计模式关于Selenium自动化测试框架那些你不知道的事

更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南