test是java什么层,java + testNG测试框架搭建--HTTP层接口应用(五)

java + testNG测试框架搭建--HTTP层接口应用(五)

package com.iflytek.TestCase.domesticAPP.domesticAPPV121;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

import com.iflytek.zx.test.smart.annotation.AEnv;

import com.iflytek.zx.test.smart.service.web.AbstractHttpTests;

import org.springframework.http.HttpEntity;

import org.springframework.http.HttpHeaders;

import org.springframework.util.LinkedMultiValueMap;

import org.springframework.util.MultiValueMap;

import org.springframework.web.client.RestTemplate;

import org.testng.Assert;

import org.testng.annotations.BeforeClass;

import org.testng.annotations.Test;

import java.util.HashMap;

import java.util.Map;

import com.iflytek.Common.*;

import static com.iflytek.Common.Const.*;

@AEnv(dataDiffEnv = false)

//阅读书库类型查询

public class getReadBookTypeListTest extends AbstractHttpTests {

private LoginGetToken loginGetToken = new LoginGetToken();

public String LoginToken=null;

@BeforeClass

public void init() {

LoginToken = loginGetToken.LoginGetTokenTest(domesticAPP_appId_Online, "domestic_student");

}

@Test()

/*获取书本接口测试用例*/

public void getReadBookTypeList() {

RestTemplate restTemplate = new RestTemplate();

// 请求网址

String url ="https://xxxxxx/xx/xxx/readBook/getReadBookTypeList";

//请求报文

HttpHeaders headers = new HttpHeaders();

headers.add("S-Auth-AppId","qqzw_domestic_app_services_prod");

headers.add("S-Auth-GroupId","62043c66e14c4b8b9a42c6c19c40fadd");

headers.add("S-Auth-Signature","JlK2CAhnpqB2oiXn13nKbWWR+SStkQ8O+8MdGI/3Au4=");

headers.add("S-Auth-Nonce","e94b4afb-e410-47b8-9e96-6a5a621fcea0");

headers.add("S-Auth-Timestamp","1610593431860");

headers.add("S-Auth-Version","1");

headers.add("S-SDK-Version","1.0.6");

headers.add("S-Auth-Stage","RELEASE");

headers.add("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");

headers.add("Connection","Keep-Alive");

headers.add("User-Agent","ShieldAndroidSDK");

//请求参数

Map map = new HashMap(); //dubbo层接口参数类型,参照接口测试文档 {"key1":value1,"key2":value2}

map.put("token", LoginToken);

map.put("clientType", "android");

map.put("appCode", "domestic_student");

map.put("role", "0");

//将接口参数转化json格式,并赋值给params

MultiValueMap postParameters = new LinkedMultiValueMap();

postParameters.add("params", JSON.toJSONString(map));

HttpEntity> request = new HttpEntity<>(postParameters, headers);

JSONObject response = restTemplate.postForObject(url, request, JSONObject.class); //发送请求

System.out.println(response); //打印响应结果

//断言比较响应结果的正确性

Assert.assertEquals(response.getString("message"), "成功");

Assert.assertEquals(response.getJSONArray("returnValue").size(), 3);

Assert.assertEquals(response.getJSONArray("returnValue").getJSONObject(0).get("name"), "童话绘本");

Assert.assertEquals(response.getJSONArray("returnValue").getJSONObject(1).get("name"), "传统美德故事");

Assert.assertEquals(response.getJSONArray("returnValue").getJSONObject(2).get("name"), "少年中国梦");

}

}

java + testNG测试框架搭建--HTTP层接口应用(五) 相关文章

java_多线程 (三)

1.什么是死锁 2.什么是Lock锁 /** * 第三种解决线程安全的方式 : Lock 锁 -- JDK5.0新增 * synchronized * 问题 : synchronized 与 lock 的异同 * 1.相同 : 两者都可以解决线程的安全问题 * 2.不同 : synchronized 在执行完相应的代码后 , 会自动释放锁 * lo

【Bean转XML】JAXB读取xml文档转换为java对象报错:IllegalAnnotationExceptions 类的两个属性具有相同名称 corpId

1、POM 依赖 dependency groupIdjavax.xml.bind/groupId artifactIdjaxb-api/artifactId version2.3.1/version /dependency dependency groupIdcom.sun.xml.bind/groupId artifactIdjaxb-impl/artifactId version2.3.0/version /dependency dependency group

根据map的value进行排序

JAVA对Map按Value值排序 在java实际编程中经常需要使用到HashMap,TreeMap以及LinkedHashMap来保存键值对,而java中对Map按Value排序并没有已经写好的方法,需要自己实现。 作者使用了自定义类以及Collections包的sort()方法实现Map的按值排序,具体代码如下

java静态代码块、属性赋值、构造代码块、构造方法的执行顺序

java静态代码块、属性赋值、构造代码块、构造方法的执行顺序 首先static代码块和static变量赋值均在类加载时执行,普通属性在对象创建时产生,显然 static优先于非static static代码块与static属性先后顺序 package test;public class Parent {static int a

Java8对List集合对象某个字段进行排序

一、准备工作 1、声明一个对象 class User{ private Integer userId; private String userName; public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public String getUserName() { return us

Java并发包源码学习系列:阻塞队列实现之ArrayBlockingQueue源码解析

目录 ArrayBlockingQueue概述 类图结构及重要字段 构造器 出队和入队操作 入队enqueue 出队dequeue 阻塞式操作 E take() 阻塞式获取 void put(E e) 阻塞式插入 E poll(timeout, unit) 阻塞式超时获取 boolean offer(e, timeout, unit) 阻塞式超时插入 其他常

586 Node.js系列二 - Node基础知识: JavaScript文件执行,Node的REPL,给node程序传递参数,node程序输出内容,常见全局对象,特殊的全局对象

一. Node执行代码 1.1. JavaScript文件执行 如果我们编写一个js文件,里面存放JavaScript代码,如何来执行它呢 // 1.直接打印一段文字console.log("我是一段JavaScript代码");// 2.定义一个函数, 调用这个函数function sum(num1, num2) { return num1 + num2

解决spark-submit的There is insufficient memory for the Java Runtime Environment to continue.(老顽固问题) failed; error=Cannot allocate memory (errno=12)

Q:第一次提交wordcount案例,OK,一切正常。再次提交,出现下述错误。完整错误粘贴如下: 21/01/27 14:55:48 INFO spark.SecurityManager: Changing modify acls groups to: 21/01/27 14:55:48 INFO spark.SecurityManager: SecurityManager: authenticatio

java学习笔记--基础篇08(oop基础)

JAVA面向对象 1、 面向对象面向过程 面向过程思想 步骤简单清晰,第一步做什么,第二步做什么... 面向过程适合处理一些较为简单的问题(处理过程我能想的明白,复杂了就想不明白了) 面向对象思想 分类的思维模式,首先对待处理的问题进行分类;然后对这些分类

java对象

对象 面向过程,面向对象 面向过程,面向对象: 面向过程思想:步骤清晰,第一步做什么,第二部做什么; 面向对象:以分类的思维模式,思考解决问题需要哪些分类,适合处理复杂的问题。 面向对象编程(OOP)的本质: 以类的方式组织代码,以对象的组织(封装

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值