java自动化数据处理流程控制_基于Java+HttpClient+TestNG的接口自动化测试框架(十)------ 测试步骤过程中的数据处理...

我们在做接口自动化测试的时候,首先先要想想接口的请求是怎样完成的,或者说,单个的接口请求有哪些要素。以及一些不同请求的不同应对方法。

简单来说,一个接口测试有几个要素。我们需要挨个的罗列出来。

0)是否运行该测试。(有个开关控制)

1)请求的url。(必须的)

2)请求的header。--------这个来说有点点复杂。一些常用的请求头内容还比较好说。但是,当Content-Type的值有变化的时候,参数需要进行分别的处理。另外,还有一种就是认证需要加Token的情形。

3)请求参数。--------通常来说,这部分也是有些复杂的,请求参数会多种多样。当然,目前绝大多数的情况还都是Json和文件。

4)请求结果的判定--------返回Json字符串的判定。某些请求会出现图片和文件的下载,这些也都是要注意的。

5)请求结果的转存及后续参数的提供--------具体的处理在前面已经讲过。

对于以上的要素,我们可以设计一个Excel表格来进行管理,罗列出我们需要的要素。然后通过读取该Excel,来自动的进行接口的请求,以及返回内容的判定,从而达到自动化测试的目的。

71820d437496b8877b85649cf72a7b4e.png

对于上面的形式,童鞋们可能有很多疑问。这里不展开说,只是提供一种参考。这种表格,我姑且称之为case表格。这里,我简单描述一下这个表格。首先,我们把Excel的内容进行读入,

run这一列代表是否运行这条测试(可以用Y/N来控制)。

desc这一列代表本条接口测试的说明,即输入哪个部分,干什么的。

method这个是请求方法,就是我们通常说的get/post什么的。

url这个是具体请求的链接,前面不加主机名。因为这个主机名我们可以在xml文件中进行配置。

header这个就是请求头的信息,在xml中我还会写一个public Headers的公用请求头信息。这里其实是为了碰到不同的情况。比如:我们N个请求中如果都是用到Content-Type:application/json,那么我们可以写在公用的请求头中。但是,如果某个请求需要单独加token来访问,这个时候请求头上可能要带上token的信息。这样的话,就可以在Excel文件中,这一条请求的header中指定这个token。例如:{"Authorization":"Bearer ${sys_token}"}。

param这个是参数,即访问时需要增加的参数。当然,这里也可以指定上传的文件。----关于上传文件,我们之后再详细讨论。

contains这个是我自己自定义的,因为有的时候只需要直接判定返回的内容中是否包含某段内容。如果是这样的判定(即不考虑jsonpath),就设定为Y,反之为N。

verify为判定内容。如果前面是Y,则输入具体需要判定的内容。如果是N,则需要按照JSONPath的路径来指定判定的值。

save这个为存储变量来用的。假如该条请求的某个返回信息,是下面某个请求需要的,就可以按照这个方式来处理。

依照上面的描述,在进行Excel读取的时候,我们需要将各个部分的信息先读取出来,并最终按照一定的形式,提供一个List,这个List可以看作是对每行Excel需要进行的接口请求,读取并处理了数据。(这里说的有点抽象,请参考以下的代码)

packageutils;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method;importjava.math.BigDecimal;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;importorg.apache.poi.ss.usermodel.Cell;importorg.apache.poi.ss.usermodel.CellType;importorg.apache.poi.ss.usermodel.Row;importorg.apache.poi.ss.usermodel.Sheet;importorg.apache.poi.ss.usermodel.Workbook;importorg.apache.poi.xssf.usermodel.XSSFWorkbook;importcom.alibaba.fastjson.JSONObject;public classexcelUtil {/*** 获取excel表所有sheet数据

*@paramclz

*@parampath

*@return

*/

public static List readExcel(Classclz, String path) {

System.out.println(path);if (null == path || "".equals(path)) {return null;

}

InputStream is;

Workbook xssfWorkbook;try{

is= newFileInputStream(path);if (path.endsWith(".xls")) {

xssfWorkbook= newHSSFWorkbook(is);

}else{

xssfWorkbook= newXSSFWorkbook(is);

}

is.close();int sheetNumber =xssfWorkbook.getNumberOfSheets();

List allData = new ArrayList();for (int i = 0; i < sheetNumber; i++) {

allData.addAll(transToObject(clz, xssfWorkbook,

xssfWorkbook.getSheetName(i)));

}returnallData;

}catch(Exception e) {

e.printStackTrace();throw new RuntimeException("转换excel文件失败:" +e.getMessage());

}

}/*** 获取excel表指定sheet表数据

*@paramclz</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值