IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 总结学习过程--Java接口自动化初级框架(五)自动化接口测试引入迭代器 -> 正文阅读

[开发测试]总结学习过程--Java接口自动化初级框架(五)自动化接口测试引入迭代器

问题:接口入参,需要将入参全部改变为某一个特定值,入参字段总数和名称都为不确定

测试用例名称1:所有字段都为空;
测试用例名称2:所有入参都为特殊字符:*;

接口入参:
{key1=value1, key2=value2, key3=value3, key4=value4}
备注:不限入参的参数数量(可以适应所有接口)

解决方案思路:
1.只改每一个键值对的value值,而key不变
2.需要遍历map里面的每一个键值对,获取到所有的value
3.将或者到的value值做修改
4.将新的键值对放到一个新的map里面

迭代器引入:

package test;

import com.alibaba.fastjson.JSON;
import org.testng.annotations.Test;
import util.JsonUtil;
import util.requestAll;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class MapTest {
    //设置基础请求参数,URL,
    String URL = "https://reqres.in";
    //接口地址 URL + 路径
    String post_001 = URL +"/api/users";

    public static Map<String, Object> main(String value_2) {

        //String value_2 = "!@#$%^&*(";//每次修改这个值,所有的入参就会变为这个

        Map<String, Object> map_1 = new HashMap<>();
        Map<String, Object> map_2 = new HashMap<>();

        map_1.put("key1", "value1");
        map_1.put("key2", "value2");
        map_1.put("key3", "value3");
        map_1.put("key4", "value4");

//        1.使用entrySet()遍历
        System.out.println("使用entrySet()遍历");
        Iterator it = map_1.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry entry =(Map.Entry) it.next();
            Object key_1 = entry.getKey();
            Object value_1 = entry.getValue();
            System.out.println("key="+key_1+"  value"+value_1);
            map_2.put((String) key_1,value_2);
            //System.out.println(map_2);


        }
        //System.out.println(map_1);
        //System.out.println("修改之后的map");
        //System.out.println(map_2);
        return map_2; //把修改之后组装好的map返回给调用者
    }


    @Test
    public void Test_00001() throws IOException {
        Map<String,Object> map_3 = main(""); //组装好的空字符串放到一个新的对象里面,后续发起请求
        String postResult = requestAll.request(post_001, JSON.toJSONString(map_3));
        Map postResultMap = JsonUtil.json2Map(postResult);
        System.out.println(JSON.toJSONString(map_3));
        System.out.println(postResult);
    }
    @Test
    public void Test_00002() throws IOException {
        Map<String,Object> map_3 = main("*"); //组装好的字符串放到一个新的对象里面,后续发起请求
        String postResult = requestAll.request(post_001, JSON.toJSONString(map_3));
        Map postResultMap = JsonUtil.json2Map(postResult);
        System.out.println(JSON.toJSONString(map_3));
        System.out.println(postResult);
    }



}

结果打印出来
在这里插入图片描述test1

在这里插入图片描述test2

把过程打印一下:

把代码里面的注释打开就看到。

补充:
1.能否做成可以自己随便输入的?-----可以操作,但是回归自动化不用经常改,写死即可,多几个test
2.对于字段参数少的就duck不必这么麻烦。目前项目是一个接口上百个字段,节省大量时间。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:31:40  更:2021-08-09 10:32:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 11:05:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码