接口測試構造數據的幾種方法總結


我們一般接口測試測的無非這幾種:

1.把數據post給某個接口,看接口返回情況。

2.訪問某個接口,接口攜帶的參數不一樣,測試其返回情況

3.直接訪問某個接口(不需要你修改攜帶參數),查看該接口返回的內容。這個一般是查看接口返回的數據對不對,一般用於兩個系統之間互相傳遞數據。

 

對於第2中情況,往往不需要我們構造數據,直接給url攜帶不同的參數即可。

但是對於1,3中情況,需要我們自己構造數據。

總結一下這2種情況構造數據的方法(記性不太好,原諒我什么都要記錄一下,哪怕是一個很簡單的方法)。

 

情況1:

a.用firefox的restclient插件.用這個插件給某個url post數據,如下圖所示:
 
b.也可以自己寫腳本,將post的數據放在文件里,腳本調用這個文件,將數據post給某個接口
如:
##coding=utf-8
import urllib

POST_URL="http://123.23.223.34:8888/path1"
PATH="1001.txt"
def get_json_from_disk (path):
    """get json from local path 
    
    Args:

        path: local disk path
    Returns:
        string
    """
    fp = open (path, "r")
    d = fp.read()
    fp.close()
    return d



def _do_post ():
    """post atlas data to hermes
    """
    path = PATH
    data = get_json_from_disk (path)
    params_src = {
                 "data": data

                      
                 }
    params = urllib.urlencode(params_src)
    f = urllib.urlopen( POST_URL , params)
    print f.read()  
    f.close()

    return True

_do_post ()
運行這個payhon腳本,就可以把1001.txt文件里的數據通過post方法傳遞給接口http://123.23.223.34:8888/path1
 
 
情況3:
比如說我需要測個定時任務,這個定時任務是:定時訪問其他項目組的某個接口,拉取數據到我們組。為了避免被別人牽着鼻子走(比如說他們組沒完成或接口超時,導致我們的測試延期),可以自己模擬一個接口,供我們的系統調用,這樣的話,我們想啥時候測就啥時候測,想給接口傳輸啥數據就傳輸啥數據。
 
具體做法是這樣:
1.根據雙方組定義的要傳輸的數據格式,自己造好數據,存在本地文件中(如1.json)
 
2.自己模擬一個服務,讓這個服務調用我的本地文件1.json。
 
如在虛擬機11.22.33.44上寫個腳本index.js,腳本內容如下:
 
// Generated by CoffeeScript 1.6.3
(function() {
  var data1, data2, http, url;

  http = require("http");

  url = require("url");

  data1 = require("./1.json");

  data2 = require("./2.json");

  http.createServer(function(req, res) {
    var data, filename, path;
    console.log(new Date().toString(), req.url);
    path = url.parse(req.url).pathname;
    if (path === "/path") {
      filename = "./1.json";
    }else if (path === "/path2"){
      filename = "./2.json";
    }else {
      res.end("path not found");
      return;
    }
    delete require.cache[require.resolve(filename)];
    data = require(filename);
    return res.end(JSON.stringify(data, null, 2));
  }).listen(8886);

}).call(this);
 
腳本的意思是當你訪問http://11.22.33.44:8886/path這個鏈接時,返回的數據是1.json里面的數據;
當你訪問http://11.22.33.44:8886/path2這個鏈接時,返回的數據時2.json文件里面的數據
 
3.找到我們系統調用接口的配置文件,把調用的其他組的那個接口改成我自己寫的接口地址,如 http://11.22.33.44:8886/path。
 
4.開啟自己造的這個服務,這樣接口才可以用哦。nohup node index.js &
 
5.大功告成,這樣系統調用的就是我們自己定義的接口和數據了,而不是調用的其他組的接口。這樣是不是很方便。等其他項目組接口都完成測試后后,雙方組再聯調一下就ok了。


免責聲明!

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



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