eolinker流程用例步驟之腳本代碼[Javascript]:讀取多組數據,循環執行同一操作


 特別注意:需要使用全局變量或者預處理前務必閱讀本鏈接https://www.cnblogs.com/becks/p/13713278.html

 

 

場景(一)描述:

在未知有多少會員卡的前提下,對會員卡進行禁用操作。問題的關鍵是,會員卡種類數未知,且只能通過獲取會員卡后,判斷會員卡數,且禁用操作需要獲取接口返回id來實現對會員卡的禁用

 

 

實現步驟:1、首先獲取會員卡列表,把會員卡id變量化;

     2、將變量化后的會員卡傳給禁用操作的api,執行禁用操作

 

第一步,獲取會員卡列表的接口返回如下

 

 

第二步,創建“腳本代碼[Javascript]”,創建后的界面如下圖,后面需要對腳本進行處理

 

 

 

 

 

 

 

第三步,處理腳本和數據。

  1、第一步的時候,獲取會員卡數據的接口已經執行了,且返回數據,所以這里的第一步,需要“綁定求他測試步驟的參數”,把會員卡id引入到禁用接口中

  2、會員卡的id存儲在Data中,選中Data,確認

 

 

 

  3、插入成功后,示例區域顯示如下圖

 

   4、需要處理一下

 

   5、預期目標是禁用所有的會員卡,但是系統必須保留一個會員卡存在,所以保留第一個會員卡不禁用,其他的全禁用。所以需要創建循環,把獲取到的會員卡id循環給禁用執行去執行禁用。

引入for循環,注意下圖3個紅色下划線。第一個代表執行從第2組數據開始,因為第一組不執行,所以這里寫“1”,第二個下划線test代表let 定義的內容,第三個下划線是指循環{}內的內容,最后會有一個}結尾

 

  6、完善api_1內的信息,這里主要填寫禁用接口的一些信息,如url內的禁用接口地址,name為操作步驟的名稱可自定義,method設置為post,因為禁用進口是post請求,headers空(視情況),bodytype設置json,請求數據以json格式提交,body后的內容,禁用接口body只有id:xx,這一項,而id又是從上面定義的test中獲取的,且只需要test中的Id值,所以可以寫成“id: test[i].Id”,這里的i對應data里的i,意思是第幾組會員卡下的id值

 

   7、然后就是加入判斷,請求后的返回值不等於0,執行失敗,即禁用失敗

 

   8,整個[Javascript]腳本如下,關鍵部分已標紅

//以下代碼為示例代碼(支持原生js/jquery寫法),正式測試前請刪除
//定義需要測試的API api_1
let apiResponse = response["248509"].Data;
for (var i =1; i < apiResponse.length; i++) {
 var api_1 = {
  "url": "/{{storeid}}/Member/DisabledLevelCard", //[必填][string]請求地址,若不存在請求協議,默認http
  "name": "禁用會員卡", //[選填][string],API名稱,方便檢索,不填則默認為系統生成API編號
  "method": "POST", //[選填][string],請求方式,可能值有[GET/POST/PUT/PATCH/DELETE/HEAD/OPTION],兼容大小寫,默認為GET
  "headers": {}, //[選填][object],請求頭部
  "bodyType": "json", //[選填][string],請求體類型
  "body": {
 id: apiResponse[i].Id
  },
  "timelimit": "follow" //[選填][number],超時限制,單位為ms,超過時間則判斷為請求失敗,0為不限制請求時間(慎用!防止程序假死),默認為10s
 };
 //執行api_1的測試,返回格式為{time:"請求時間",code:"HTTP狀態碼",response:"返回結果",header:"返回頭部"},
 //如{time:"32ms",code:200,response:"helloworld",header:{"content-length":"568"}}
 var result_api_1 = eo.execute(api_1);
 //判斷返回結果
 if (JSON.parse(result_api_1.response).Code != "0") {
  eo.stop("禁用執行失敗"); //中止測試,並且拋出相關信息。
 }
}

 

執行后返回信息

 

 檢查頁面

 

 

 

 

 場景(二)

  場景(一)JS腳本內設置的接口,以json方式提交數據,如果遇到表單提交,則需要對bodyType修改一下,如下圖請求

 

  那么在js插入腳本內,就需要修改下,把"bodyType": "form-data",   上排headers,需要注意,如果設置了環境全局變量,會影響這里的請求頭,所以需要在這里單獨修改文本格式,避免提交文本格式不正確

 

  

 場景(三),假如需要循環的對象沒有數據?

 比如刪除商品,如果當前沒有商品,按照場景(一)取數據,就會提示長度(length)錯誤,因為獲取的值是空的。所以這里需要加個if判斷

下圖紅框內即加入一個if判斷,如果返回的Datalist不為空,則執行if內的腳本內容

 

 

 

js  判斷的用法,參考https://www.runoob.com/js/js-if-else.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM