Trade Me-8-检索您赢得的物品 API 测试 | Postman接口自动化测试

API 功能

检索经过身份验证的用户的购买清单。

多数量拍卖可以多次购买。

API - 检索您赢得的物品脚本开发步骤

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

API规范

  • 关键请求字段

img

  • 关键响应字段 - 经过身份验证的用户已购买的项目列表。

    TotalCount Integer 集合中的结果总数。可以大于返回结果的数量。
    Page Integer 当前结果页的索引(从 1 开始)。
    PageSize Integer 当前页面中的结果数。
    List Collection of or null 当前页面中的结果列表。
    ListingId 长整数 商家信息的 ID。
    PurchaseId Integer 标识销售的唯一 ID。

更多参考:检索您赢得的物品

  • 示例请求

GET https://api.tmsandbox.co.nz/v1/MyTradeMe/Won/All.JSON

  • 示例响应 - 获胜列表中的 1 个项目:

{
    "TotalCount": 1,
    "Page": 1,
    "PageSize": 1,
    "List": [
        {
            "ListingId": 2149290179,
            "Title": "Samsung Galaxy BV Weaving S9 Case",
            "Category": "0344-0899-1135-5537-",
            "StartPrice": 0,
            ...
            "ListingGroupId": 73059,
			...
            "PaymentInfo": "NZ Bank Deposit",
            "Price": 12.99,
            "SelectedShipping": "rural",
            "ShippingPrice": 9.99,
            "ShippingType": 4,
			...
            "PurchaseId": 26176,
			...
        }
    ]
}
  • 示例响应 - 获胜列表中的 0 项:

{
    "TotalCount": 0,
    "Page": 1,
    "PageSize": 0,
    "List": []
}

业务介绍

  • 前端页面 - 赢得列表页面 - 有项目

登录 > My Trade Me > Won

img

  • 前端页面 - 获胜列表页面 - 没有项目

img

  • 业务范围选择:

链式投资组合交易

检索您赢得的物品(我在这里 ->从您赢得的物品列表中删除购买 ->常规搜索 ->检索单个列表的详细信息 ->使用“立即购买”购买拍卖

  • 业务验证点

检查获胜清单上是否有项目。

API测试脚本调试

  • 在 Postman 的 Authorization 标签中选择 OAuth 1.0 对请求进行授权。

OAuth 1.0 是针对发送前需要授权的交易。模板如下:

img

如何获取Consumer Key、Consumer Secret、OAuth Token、OAuth Token Secret,请参考API测试前的准备demo

基于 API 规范,参数 - All表示返回过去 45 天内所有赢得的项目。

所以请求应该是 GET https://api.tmsandbox.co.nz/v1/MyTradeMe/Won/All.JSON

img

  • API连通性

连通性测试通过并获得响应示例。

{
    "TotalCount": 1,
    "Page": 1,
    "PageSize": 1,
    "List": [
        {
            "ListingId": 2149290179,
            "Title": "Samsung Galaxy BV Weaving S9 Case",
            "Category": "0344-0899-1135-5537-",
            "StartPrice": 0,
            "StartDate": "/Date(1625630212963)/",
            "EndDate": "/Date(1625648672660)/",
            "ListingLength": null,
            "AsAt": "/Date(1625649420456)/",
            "CategoryPath": "/Mobile-phones/Accessories/Cases-covers/Samsung",
            "PictureHref": "https://images.tmsandbox.co.nz/photoserver/thumb/4676325.jpg",
            "PhotoId": 4676325,
            "Seller": {
                "MemberId": 4000334,
                "Nickname": "paperclip4",
                "DateAddressVerified": "/Date(1338811200000)/",
                "DateJoined": "/Date(1338811200000)/",
                "Email": "owen4@snipesoft.net.nz",
                "UniqueNegative": 0,
                "UniquePositive": 3,
                "FeedbackCount": 3,
                "IsAddressVerified": true
            },
            "IsNew": true,
            "Note": "",
            "NoteDate": "/Date(0)/",
            "CategoryName": "Samsung",
            "ReserveState": 3,
            "IsBuyNowOnly": true,
            "Quantity": 1,
            "IsFlatShippingCharge": true,
            "Options": [
                {
                    "Name": "Colour",
                    "Value": "Blue"
                }
            ],
            "ListingGroupId": 73059,
            "StatusDate": "/Date(0)/",
            "AuctionAttribute": "",
            "BuyerFeedbackPlaced": 0,
            "SellerFeedbackPlaced": 0,
            "DeliveryId": 0,
            "FpoDecisionViaMobile": false,
            "HasPaidByCreditCard": false,
            "InvoiceId": 0,
            "OfferId": 0,
            "PaymentInfo": "NZ Bank Deposit",
            "Price": 12.99,
            "SelectedShipping": "rural",
            "ShippingPrice": 9.99,
            "ShippingType": 4,
            "SoldDate": "/Date(1625648672660)/",
            "SoldType": "BUYNOW",
            "PaymentInstructions": "",
            "PurchaseId": 26176,
            "ReferenceNumber": "P26176",
            "SubtotalPrice": 12.99,
            "TotalShippingPrice": 9.99,
            "TotalSalePrice": 22.98,
            "TrackedParcels": [],
            "TaxSubTotal": 0,
            "HasPaidByDeferredPayment": false
        }
    ]
}
  • API检查点

检查获胜列表中是否存在项目。

并将赢得的项目 PurchaseId 及其计数存储为两个环境变量:{{WonPurchaseId}} 和 {{WonPurchaseIdCount}} 用于下游 API -从您赢得的项目列表中删除购买 使用。

然后我们根据示例功能得到下面的检查代码片段。

console.log("Post-Transaction: CheckingWonListHaveItems Start");

pm.test("CheckingWonListHasItems", function () {

    var jsonData = pm.response.json();

    var arr =[];

    var List = jsonData.List;

    if (List != ""){

        for (i in List){

            var PurchaseId = List[i].PurchaseId;

            arr.push(PurchaseId);

        }

        // Store WonPurchaseIdCount for later deleting usage
        postman.setEnvironmentVariable('WonPurchaseIdCount', arr.length);

        if(arr !== []){
            
            if(arr.length >=1){

                // Store WonItems for later deleting usage         
                postman.setEnvironmentVariable('WonPurchaseId', arr);

                console.log("WonPurchaseId counts to: " + arr.length + ", the purchaseId: " + arr);
                
                console.log("Post-Transaction: CheckingWonListHaveItems Pass");

            }

            else{

                postman.setEnvironmentVariable('WonPurchaseId', arr);
                
                console.log("WonPurchaseId counts to: " + arr.length + ". There are no items on the won list.");
                
                console.log("Post-Transaction: CheckingWonListHaveItems Pass");

            }

        }
        
    }

    else{

        console.log("Post-Transaction: CheckingWonListHaveItems Failed");
        
    }

});

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

img

它在控制台日志中显示的获胜列表页面上没有任何项目。

img

它在控制台日志上显示的获胜列表页面上有项目。

img

API 测试脚本增强

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

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

img

API 测试脚本否定案例扩展

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

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

API测试脚本发布

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

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

版权

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