apipost下载安装教程、脚本详细使用教程

目录

apipost脚本使用教程

缘由:

实现流程:

1、设置接口需要的URL:

2、boby:

3、预执行操作:

4、断言

5、执行结果:

什么是ApiPost?

下载以及安装:

apipost使用文档介绍:

发送前动态修改Query、Body、Header参数

1、使用场景​

2、脚本语法

3、实际项目操作例如

利用预执行脚本动态添加一个请求参数

使用场景​

body请求参数如下:​

header请求参数如下:​

具体实现​

1、计算token并赋给变量​

2、动态添加请求头​

3、实际项目操作例如

请求一个需要登录才能访问的接口(基于COOKIE)

方案I、开启全局cookie​

方案II、利用环境变量,先请求登陆接口,再请求后续接口​

利用CryptoJS对请求参数进行MD5、AES加解密

MD5加密​

SHA256加密​

base64加密​

base64解密​

AES简单加密​

AES简单解密​

自定义AES加解密函数​

请求示例​

请求接口自动计算参数签名

使用场景​

脚本语法​

实际项目操作例如

如何使用断言

什么是断言​

使用 Apipost 的断言格式​

响应结果的校验

数据校验的意义​

数据校验的设置​

常见问题​


apipost脚本使用教程

缘由:

本期文章主要围绕脚本实现模拟第三方推送接口讲解

主要原因:项目涉及到需要对接第三方接口,暴露接口出去给第三方调用。每次项目订单状况节点,需要等待第三方开单后,在推送下单状态回来,每次多人操作时候,都需要登录同一账号,过程等待比较缓慢,效率比较低。

实现流程:

1、设置接口需要的URL:
http://localhost:8080/api/dbts/sendOrderStatus
2、boby:

参数名

参数值 描述
digest

String

{ {digest}}

params

String

{ {params}}

timestamp

String

1731572100579

companyCode

String

{ {companyCode}}

logisticID

String

TSVU43434t318000045

mailNo

String

sdferee340985266

statusType

String

GOT

3、预执行操作:
class SecurityUtil {
    static getDigest(plainText) {
        // 使用 crypto 模块生成 MD5 哈希
        let md5Str = CryptoJS.MD5(plainText);
        // 将 MD5 哈希转换为 Base64 编码的字符串
        let base64Encoded = btoa(md5Str);
        return base64Encoded;
    }
}

let timestamp = request.request_bodys.timestamp.toString();
apt.globals.set("timestamp", timestamp);

let companyCode = "*********"; //账号编码
apt.globals.set("companyCode", companyCode);

let appkey = "********************"; //账密

let params = "";
let logisticID = request.request_bodys.logisticID.toString();
let mailNo = request.request_bodys.mailNo.toString();
let statusType = request.request_bodys.statusType.toString();
console.log("logisticID: " + logisticID + " ,mailNo: " + mailNo + " ,statusType: " + statusType );
apt.removeRequestBody("logisticID");
apt.removeRequestBody("mailNo");
apt.removeRequestBody("statusType");
const model = packingCommonModel();
params = JSON.stringify(model);
apt.globals.set("params", params);

let digest = "";
digest = SecurityUtil.getDigest(params + appkey + timestamp);
console.log("digest: ", JSON.stringify(digest));
apt.globals.set("digest", digest);

function packingCommonModel() {
    const commonModel = {
        gmtUpdated: "1724375950500",
        logisticCompanyID: "DEPPON",
        logisticID: logisticID,
        mailNo: mailNo,
        statusType: statusType
    };
    return commonModel;
}

4、断言

后执行操作:

apt.test("响应json的errstr字段值为'success'", function () {
  var jsonData = apt.response.json();
  apt.expect(jsonData.errstr).to.eql("success");
});

apt.test("成功的POST请求", function () {
  apt.expect(apt.response.code).to.be.oneOf([201, 202]);
});
5、执行结果:

断言与校验结果:

什么是ApiPost?

Apipost 基于同一份数据源,同时提供供后端开发、前端开发、测试人员使用的接口调试、Mock、自动化测试等功能,实时协作,降本增效绝不是空谈!

同时,针对技术管理层来说,也大大方便了 API 文档类数字资产的管理与延续。

视频教程:ApiPost视频培训教程

下载以及安装:

支持Windows、Mac、Linux等多种操作系统

下载地址: 
apipost下载地址

下载后,直接解压安装就OK了。如果对安装有问题的朋友,各位自行百度一下!!!

apipost使用文档介绍:

https://v7-wiki.apipost.cn/docs/4

发送前动态修改Query、Body、Header参数

在文档 “预执行脚本” 中,我们了解到,预执行脚本的作用主要是:

编写JS函数等实现复杂计算;
变量的打印
定义、获取、删除、清空环境变量
定义、获取、删除、清空全局变量
获取请求参数
动态添加、删除一个header请求参数
动态添加、删除一个query请求参数
动态添加、删除一个body请求参数
发送HTTP请求

利用这个功能,我们可以在发送前动态的添加或者修改请求参数。

1、使用场景

适用于在请求发送前,需要动态改变请求参数的情况。例如:请求发送时,需要通过其他请求参数计算一个token同时添加到对应的发送参数中。

2、脚本语法

apt.setRequestQuery("key", "value"); // 给URL添加、修改query参数
apt.removeRequestQuery("key"); // 删除URL的指定query参数
apt.setRequestHeader("key", "value"); // 增加、修改一个请求头key
apt.removeRequestHeader("key"); // 删除请求头 key
apt.setRequestBody("key", "value"); // 增加、修改一个body参数
apt.removeRequestBody("key"); // 删除body参数key
apt.setRequestBody(
    { 
        "key": "value" 
    }
); // 将 body 参数 "整体" 重置为 {"key": "value"},适用于原请求体为 raw 类型的情况

3、实际项目操作例如

totalVolume 和 totalWeight 获取值之后,需要在请求体删除掉

脚本

let totalVolume = request.request_bodys.totalVolume.toString();
let totalWeight = request.request_bodys.totalWeight.toString();
apt.removeRequestBody("totalVolume");
apt.removeRequestBody("totalWeight");

利用预执行脚本动态添加一个请求参数

使用场景

我们可能需要在请求时发送一些参数,而这些参数是通过其他参与发送的请求参数计算而来的。举例:

body请求参数如下:
参数 参数描述
user_id 用户id
nick_name 用户名
header请求参数如下:<
Linux安装Apipost的过程相较于Windows可能略有不同,因为它通常依赖于包管理器或者命令行操作。以下是几种在Linux上安装Apipost的常见方法: 1. 使用snap安装(适用于支持snap的Linux发行版): ```bash sudo snap install apipost ``` 2. 如果你的Linux发行版支持flatpak,也可以尝试使用flatpak进行安装: ```bash flatpak install apipost ``` 3. 通过下载压缩包安装: - 访问Apipost的官方网站或者其他可信赖的下载源下载适用于Linux的压缩包。 - 解压下载的压缩包到指定目录。 - 根据需要将其移动到系统的应用程序目录中。 - 通过终端运行Apipost可执行文件,或者为其创建快捷方式。 4. 使用命令行安装: - 对于基于Debian的系统(如Ubuntu),可以下载`.deb`包并使用`dpkg`安装: ```bash sudo dpkg -i apipost-x.x.x.deb ``` - 对于基于RPM的系统(如Fedora),下载`.rpm`包并使用`rpm`或`dnf`安装: ```bash sudo rpm -ivh apipost-x.x.x.rpm ``` - 或者使用`yum`安装: ```bash sudo yum install apipost-x.x.x.rpm ``` 5. 通过Node.js安装(如果你的系统安装了Node.js): - 使用npm安装Apipost的命令行工具: ```bash sudo npm install -g apipost ``` - 注意,这可能需要Node.js和npm已安装在你的系统上。 请注意,版本号`x.x.x`应该替换为实际的Apipost版本号。如果你不确定你的系统类型或包管理器,请先进行一些基础的Linux系统知识学习,或者使用系统自带的软件包管理工具搜索Apipost
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

€☞扫地僧☜€

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值