在我们介绍了Get方法的设计过程囷测试结果,现在我们需要对前面代码进行重构和修改本篇需要完成以下目标。
在前面文章說过,之前写的Get方法比较繁琐不光写了如何进行Get请求,还写了获取http响应状态码和JSON转换现在我们需要抽取出来,设计Get请求方法就只干┅件事情,那就是如何发送get请求其他的不要管。
我们知道请求之后会返回一个HTTP的响应对象,所以我们把get方法的返回值类型改成了响應对象,并带上返回语句重构代码之后,get方法代码如下
//执行请求,相当于postman上点击发送按钮,然后赋值给HttpResponse对象接收
由于我们不想在代码里寫死例如像HTTP响应状态码200这样的硬编码所以,这里我们在TestBase.java里把状态码给用常量写出来方便每一个TestNG测试用例去调用去断言。
现在我们的测試类代码修改之后如下
//断言状态码是不是200
测试运行通过,没毛病
2.写一个JSON解析的工具类
在上面部分,我们只是写了执行Get请求和状态码是否200的断言接下来,我们需要写有一个JSON解析工具类这样就方便我们去json内容的断言。
下面这个JSON数据截图
上面是一个标准的json的响应内容截图第一个红圈”per_page”是一个json对象,我们可以根据”per_page”来找到对应值是3而第二个红圈“data”是一个JSON数组,而不是对象不能直接去拿到里面值,需要遍历数组
下面,我们写一个JSON解析的工具方法类如果是像第一个红圈的JSON对象,我们直接返回对应的值如果是需要解析类似data数组裏面的json对象的值,这里我们构造方法默认解析数组第一个元素的内容
简单解释下上面的代码,主要是查询两种json对象的的值第一种最简單的,这个json对象在整个json串的第一层例如上面截图中的per_page,这个per_page就是通过jpath这个参数传入返回的结果就是3.
下面,我们TestNG测试用例代码如下
//断言狀态码是不是200 //把响应内容存储在字符串对象 //创建Json对象把上面字符串序列化成Json对象
你还可以多写几个jpath来测试这个json解析工具类。
4.TestNG自带的测试斷言方法
这里简单提一下TestNG的断言方法我们一般测试都需要写断言的代码,否则这样的单元测试代码就没有意义下面,我在statusCode和json解析的first_name进荇断言
//断言状态码是不是200 //把响应内容存储在字符串对象 //创建Json对象,把上面字符串序列化成Json对象
以上就是本文的全部内容希望对大家的學习有所帮助,也希望大家多多支持脚本之家
基于Java的MADlib自动化测试框架,java自动化测試框架,madlib,自动化测试框架,python自动化测试框架,web自动化测试框架,java接口自动化测试试框架,ios自动化测试框架,自动化测试框架有哪些,java自动化测试