接口测试构造数据的几种方法总结

我们一般接口测试测的无非这几种:

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 &

 

大功告成,这样系统调用的就是我们自己定义的接口和数据了,而不是调用的其他组的接口。这样很方便。等其他项目组接口都完成测试后后,双方组再联调一下就ok了。

 

转载自:接口测试构造数据的几种方法总结

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值