APIFox 接口关联与 CSV 数据参数化:打造高效的自动化测试流程

应用场景:试题更新。先获取题目详情,再更新题目的部分字段信息,更新的字段采用csv参数化,不用更新部分直接引用题目详情返回值。

接口A:获取试题详情
功能:查询特定试题的详细信息。
请求方式:GET
请求参数:试题ID
返回值:题目、题目类型、答案、解析、难度、知识点等。

接口B:更新试题信息
功能:根据试题ID更新试题的相关信息。
请求方式:PUT
请求参数:试题ID、年级、题目、题目类型、答案、解析、难度、知识点等。
自动化更新流程

步骤1:准备更新数据
根据业务需求,准备需要更新的试题数据,包括题目id、需要更新的字段等。
在APIFox中配置CSV数据参数化,导入准备好的CSV文件。
将CSV文件中的列映射到接口A接口B的请求参数上,确保每个参数都对应正确的数据。
将这些数据保存在一个CSV文件中,每一行代表一个试题的更新信息。
步骤2:获取试题详情(接口A)
使用APIFox发送GET请求到接口A,获取特定试题的详情,csv参数化试题id 。
使用APIFox发送GET请求到接口A,获取特定试题的详情,csv参数化试题id 。
步骤3:在接口A后置操作中更新试题信息(接口B)
后置操作配置
提取返回数据:首先,在接口A的测试用例中,确保能够成功获取试题的详细信息,包括题目、题目类型、答案、解析、难度等。
在这里插入图片描述

配置后置操作:添加请求接口B的脚本:

// 解析接口A响应数据
let responseJson = pm.response.json(); 
var  course_id =responseJson.data.id;
     knowledge_ids =responseJson.data.knowledge_ids;
     grade_id =responseJson.data.grade_id;
     difficulty_id =responseJson.data.difficulty_id;
     type_id =responseJson.data.type_id;
     title =responseJson.data.title;
     answer =responseJson.data.answer;
     analysis =responseJson.data.analysis;

// 获取csv数据
nlsy_id = pm.variables.get("nlsy_id");
nlsy_sy = pm.variables.get("nlsy_sy");
nlsy_nl = pm.variables.get("nlsy_nl");
kcmb = pm.variables.get("kcmb");

// 构建B接口的请求体
const jsonParam = {
        "appId": "dctest",
        "id": course_id,
        "knowledge_ids": knowledge_ids,
        "grade_id": grade_id,
        "difficulty_id": difficulty_id,
        "type_id": type_id,
        "title": title,
        "answer": answer,
        "analysis": analysis,
        "nlsy": [
            {
                "id":nlsy_id,
                "sy": nlsy_sy,
                "nl": nlsy_nl
            }
        ],
        "kcmb": kcmb,
        "sign": "xxxxx"
    }

// 设置PUT请求
const  postRequest = {
        url: "http://xxxx/cloud_topic/update",
        method:'PUT',
        header: {
            'User-Agent': 'Apifox/1.0.0 (https://apifox.com)',
            'Content-Type': 'application/json',
            'Accept': '*/*',
            'Host': 'xx.xxx.xxx.x:xxxx',
            'Connection': 'keep-alive',
            'Cookie': 'PHPSESSID=xxx22b15c741d201bc6xxx'
                } ,
        body:{
            mode:'raw',
            raw: JSON.stringify(jsonParam)
        }

     };
     
// 发送请求并处理响应
pm.sendRequest(postRequest,function(err,response){
    console.log(response.json());
});

如果在执行这段代码时遇到问题,比如网络连接问题或服务器无法响应,那么可能需要检查网络连接、服务器状态以及请求的URL是否正确。此外,确保所有的变量都已正确设置,并且服务器端点能够处理PUT请求等

步骤4:执行用例集
选择用例集合:执行接口A的测试用例,APIFox会自动将接口A中提取的变量填充到接口B请求中,并发送更新请求。
在这里插入图片描述
步骤5:验证更新结果
可以在测试报告中查看执行结果确认是否完成请求。在这里插入图片描述
总结
通过APIFox的接口关联和CSV数据参数化功能,我们可以轻松实现试题信息的自动化更新。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值