Trade Me-7-将列表添加到您的监视列表 API 测试 | Postman接口自动化测试

API 功能

将列表添加到经过身份验证的用户的监视列表。

API - 将列表添加到您的监视列表脚本开发步骤

API规范->业务展示->API测试脚本调试->API测试脚本增强->API测试脚本反向案例扩展->API测试脚本发布

API规范

  • 关键请求字段

img

更多参考:将列表添加到您的监视列表

关键响应字段 - 有关操作是否成功的详细信息。

尝试删除不存在或不在监视列表中的拍卖不会产生错误。

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

img

  • 前端页面 - 关注列表页面

img

  • 业务范围选择

链式组合交易

检索您的监视列表 ->从您的监视列表中删除列表 ->检索即将关闭的列表 ->将列表添加到您的监视列表(我在这里

从上游交易“检索即将关闭的列表 ”中获取即将关闭的列表中的随机项目,并将此项目添加到监视列表中。

  • 业务验证点

检查所选项目可以添加到监视列表。

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 是针对发送前需要授权的交易。模板如下:

img

如何获取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

img

  • 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");
                
            }

        });

    }
    
});

运行脚本以从控制台日志验证检查点是否正常工作。

img

img

API 测试脚本增强

增强脚本,如添加事务功能、异常验证、参数化等。

运行最终脚本并从前端页面或控制台日志进行验证。

在“将列表添加到您的监视列表”操作后,查看监视列表。

img

API 测试脚本否定案例扩展

使用我们在手动测试案例中所做的“等效类划分”和“边界值分析”。

这些API测试脚本都是做反方向的业务,作为上述API正案例的延伸。

API测试脚本发布

当我们完成 API 正面和反面案例时,将脚本从调试文件夹移动到公共文件夹。

然后等待使用 CICD 工具与其他脚本结合发布到 GitHub 特定存储库。

版权

本作品采用 CC BY-NC-ND 4.0 授权。