我们在做jmeter接口测试时能会用beanshell断言,一般都会将返回值转成JSONObject对象进行处理。本文选取较为复杂json格式数据,也将适用于java接口测试。

JSON数据

{
"data": {
"city": "深圳",
"date": "2017-11-04",
"pm25": {
"aqi": 0,
"co": 8,
"updatetime": "2017-11-04 13:00:00"
},
"daily": [
{
"date": "2017-11-04",
"week": "星期六",
"templow": "19",
"weather": "多云"
},
{
"date": "2017-11-05",
"week": "星期日",
"sunrise": "06:29",
"weather": "多云"
}
]
},
"status": 0,
"msg": "ok"
}

解析JSON

以下代码使用HttpClient进行接口测试,同时使用testNg进行断言

package apitest.cases;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.testng.Assert;
import org.testng.annotations.Test; import java.net.URI; public class Weather {
@Test
public void weather() {
HttpClient httpClient = HttpClientBuilder.create().build(); //执行post方法
try {
HttpGet httpGet = new HttpGet();
httpGet.setURI(URI.create("http://localhost:8001/weather")); //声明一个对象来进行响应结果的存储
HttpResponse response = httpClient.execute(httpGet);
//获取响应结果将格式转化为Json数据
String response2 = EntityUtils.toString(response.getEntity(), "utf-8");
JSONObject responseJson = new JSONObject(response2); // 获取msg status
String msg = responseJson.getString("msg");
String status = responseJson.get("status").toString(); // 获取data
JSONObject jsonData = responseJson.getJSONObject("data"); // 获取data里的city
String city = jsonData.getString("city"); // 获取pm25
JSONObject pm25 = jsonData.getJSONObject("pm25"); // 获取pm25里的updatetime
String updateTime = pm25.getString("updatetime"); // 获取data里的daily
JSONArray jsonDaily = jsonData.getJSONArray("daily"); // 获取data里的daily的第一组数据
JSONObject jsonDailyFirst = jsonDaily.getJSONObject(0); // 获取data里的daily的第一组数据的date
String date = jsonDailyFirst.getString("date"); System.out.println("获取msg----" + msg);
System.out.println("获取status----" + status);
System.out.println("获取data----" + jsonData);
System.out.println("获取data里的city----" + city);
System.out.println("获取pm25----" + pm25);
System.out.println("获取pm25里的updateTime----" + updateTime);
System.out.println("获取data里的daily----" + jsonDaily);
System.out.println("获取data里的daily的第一组数据----" + jsonDailyFirst);
System.out.println("获取data里的daily的第一组数据的date----" + date); //断言
Assert.assertEquals(msg, "ok");
} catch (Exception e) {
e.printStackTrace();
} }
}

软件测试汪简书地址

软件测试汪博客地址

欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560

转载请注意出处,谢谢合作

最新文章

  1. log4net各种Filter使用【转】
  2. Jquery--JS的函数包
  3. CentOS 下安装
  4. ASP.NET WebApi Document Helper
  5. WSP (无线会话协议)
  6. js之json
  7. 车祸 shit
  8. LeetCode OJ 122. Best Time to Buy and Sell Stock II
  9. android4.0 的图库Gallery2代码分析(二)
  10. OC的内存管理(一)
  11. postgresql 定时任务备份及恢复
  12. SELECT INTO和INSERT INTO SELECT的区别
  13. SpringMVC 图片上传,检查图片大小
  14. system.transfer.list版本进化
  15. day8 文件操作
  16. 设计模式学习--Singleton
  17. php 门面模式
  18. ssm框架之配置日志系统打印到控制台与指定文件
  19. python学习之老男孩python全栈第九期_day005作业
  20. 学习JAVA第一章的心得

热门文章

  1. loading 加载工具
  2. K-th Number Poj - 2104 主席树
  3. hdu 3333 离线线段树 + 思维/树状数组 /在线主席树
  4. the sum of two fixed value
  5. Storm简介——初始Storm
  6. Spark 计算人员三度关系
  7. pgtclsh -- PostgreSQL TCLshell 客户端
  8. VS2012 改C# 模版
  9. 解决SVN异常 cleanup failed
  10. git上传文件夹的问题