API 功能
将列表添加到经过身份验证的用户的监视列表。
API - 将列表添加到您的监视列表脚本开发步骤
API规范->业务展示->API测试脚本调试->API测试脚本增强->API测试脚本反向案例扩展->API测试脚本发布
API规范
-
关键请求字段
更多参考:将列表添加到您的监视列表
关键响应字段 - 有关操作是否成功的详细信息。
尝试删除不存在或不在监视列表中的拍卖不会产生错误。
Success | Boolean | 指示操作是否成功。 |
Description | String or null | 错误的描述,如果操作失败。 |
示例请求
POST https://api.tmsandbox.co.nz/v1/MyTradeMe/WatchList/2149294825.JSON
- 示例响应:
{
"Success": true,
"Description": "Success"
}
业务介绍
-
前端页面 - 即将关闭商品详情页面
登录 > View all Closing soon in all regions > Add to watchlist
-
前端页面 - 关注列表页面
-
业务范围选择
链式组合交易
检索您的监视列表 ->从您的监视列表中删除列表 ->检索即将关闭的列表 ->将列表添加到您的监视列表(我在这里)
从上游交易“检索即将关闭的列表 ”中获取即将关闭的列表中的随机项目,并将此项目添加到监视列表中。
-
业务验证点
检查所选项目可以添加到监视列表。
API测试脚本调试
-
组装前置请求“检索即将关闭的列表”
前置请求脚本的主要编码逻辑如下:
1.前置请求 API -“检索即将关闭的列表”以获取即将关闭列表的第一页上的所有项目。
console.log("Pre-Transaction: RetrieveClosingSoonListings Start");
const pre_request = {
url: pm.environment.get("BaseUrl")+'/v1/Listings/closing.JSON?rows=1000',
method: 'GET',
header:['Content-Type:application/json', 'Authorization:OAuth oauth_consumer_key="your Consumer Key",oauth_token="your OAuth Token",oauth_signature_method="PLAINTEXT",oauth_timestamp="1623834029",oauth_nonce="Zr5dzIAuVON",oauth_version="1.0",oauth_signature="your Consumer Secret%26your OAuth Token Secret"'],
body: {
}
};
...
注意:如何获取Consumer Key、Consumer Secret、OAuth Token、OAuth Token Secret,请参考**API测试前的准备demo **
2.从所有获取的项目中随机选择 1 个项目,并将该项目存储为参数以供以后 API - ‘将列表添加到您的监视列表’ 使用。
pm.sendRequest(pre_request, function (err, response) {
if (err) {
console.log(err);
console.log("Pre-Transaction: RetrieveClosingSoonListings Failed");
}
else {
pm.test("Get all the closing soon ListingId", function () {
var jsonData = response.json();
var List = jsonData.List;
var ListingIdsCount = jsonData.TotalCount;// Get the 250 closing soon ListingIds from 1st page
var PageSize = jsonData.PageSize;
var arr = [];
// Traversal json object to get all the ListingId
if (List != ""){
for (i in List){
var ListingId = List[i].ListingId;
arr.push(ListingId);
}
}
// Store all the ListingId as a variable
if(i == (Number(PageSize)-1)){
postman.setEnvironmentVariable('ListingIds', arr);
postman.setEnvironmentVariable('ListingIdsCount', ListingIdsCount);
}
});
// Randomly get a ListingId from ListingIds for later transaction use
var ListingIdsCount = pm.environment.get("ListingIdsCount");
var arrListingIds=pm.environment.get("ListingIds").split(",");
postman.setEnvironmentVariable('ListingIdAddToWatchList', arrListingIds[Math.floor(Math.random() * Number(ListingIdsCount))]);
var ListingIdAddToWatchList = pm.environment.get("ListingIdAddToWatchList");
console.log("From "+ListingIdsCount +" closing soon items randomly choose the: "+ListingIdAddToWatchList+" waiting to be added to the watchlist");
console.log("Pre-Transaction: RetrieveClosingSoonListings Pass");
}
-
在 Postman 的 Authorization 标签中选择 OAuth 1.0 对请求进行授权。
OAuth 1.0 是针对发送前需要授权的交易。模板如下:
如何获取Consumer Key、Consumer Secret、OAuth Token、OAuth Token Secret,请参考**API测试前的准备demo **
-
组合请求 - ‘将列表添加到您的监视列表’
根据 API 规范,参数 - listingId表示要添加到监视列表的列表的 ID。
listingId 来自前置请求**‘检索即将关闭的列表 **的响应,并且它已被设置为环境变量:{{ListingIdAddToWatchList}}。
所以请求应该是 POST https://api.tmsandbox.co.nz/v1/MyTradeMe/WatchList/{{ListingIdAddToWatchList}}.JSON
-
API连通性
连通性测试通过并获得响应示例。
{
"Success": true,
"Description": "Success"
}
-
API检查点
使用后置请求: API - **检索您的监视列表 **以检查给定的项目是否已添加到监视列表中。
然后我们根据示例功能得到下面的检查代码片段。
console.log("Post-Transaction: CheckingAddToWatchList Start");
var ListingIdAddToWatchList = pm.environment.get("ListingIdAddToWatchList");
const post_request = {
url: pm.environment.get("BaseUrl")+'/v1/MyTradeMe/Watchlist/All.JSON',
method: 'GET',
header:['Content-Type:application/json', 'Authorization:OAuth oauth_consumer_key="your Consumer Key",oauth_token="your OAuth Token",oauth_signature_method="PLAINTEXT",oauth_timestamp="1623834029",oauth_nonce="Zr5dzIAuVON",oauth_version="1.0",oauth_signature="your Consumer Secret%26your OAuth Token Secret"'],
body: {
}
};
pm.sendRequest(post_request, function (err, response) {
if (err) {
console.log(err);
console.log("Post-Transaction: CheckingAddToWatchList Failed");
}
else {
// Confirm whether ListingIdAddToWatchList existed in the Watchlist
pm.test("Checking ListingId " +ListingIdAddToWatchList +" has been added", function () {
console.log(response.json());
var jsonData = response.json();
var Listdata = jsonData['List'];
var count = 0;
for(i = 0; i < Listdata.length; i++) {
if (ListingIdAddToWatchList == Listdata[i].ListingId){
console.log("ListingId " +ListingIdAddToWatchList + " has been added to the watchlist");
console.log("Post-Transaction: CheckingAddToWatchList Pass");
count = 1;
}
}
if (count == 0){
console.log("ListingId " +ListingIdAddToWatchList + " hasn't been added to the watchlist");
console.log("Post-Transaction: CheckingAddToWatchList Failed");
}
});
}
});
运行脚本以从控制台日志验证检查点是否正常工作。
API 测试脚本增强
增强脚本,如添加事务功能、异常验证、参数化等。
运行最终脚本并从前端页面或控制台日志进行验证。
在“将列表添加到您的监视列表”操作后,查看监视列表。
API 测试脚本否定案例扩展
使用我们在手动测试案例中所做的“等效类划分”和“边界值分析”。
这些API测试脚本都是做反方向的业务,作为上述API正案例的延伸。
API测试脚本发布
当我们完成 API 正面和反面案例时,将脚本从调试文件夹移动到公共文件夹。
然后等待使用 CICD 工具与其他脚本结合发布到 GitHub 特定存储库。