51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2329|回复: 4
打印 上一主题 下一主题

[讨论] Postman做web接口自动化测试 二

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-3-8 15:27:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、第一个测试用例

  Postman可以为每个请求编写和运行测试。Postman测试本质上是为特殊测试对象设置值的Java
Script代码

1、请求方式选择GET,地址输入:www.baidu.com,如下图


2、在Tests文本域编写测试脚本,对响应的内容进行判断,例如:

tests["Status code is 200"] = responseCode.code === 200;

tests["Body matches string"] = responseBody.has("百度一下");



3、点击“Send”,可以看到测试结果:



4、用例不通过的情况:


二、在编写测试脚本时不需要记住那么多语法,可以通过编辑器旁边列出常用的代码段来简化此过
程。您可以选择要添加的代码段,并将相应的代码添加到测试编辑器中。

内置脚本说明:
  1. 清除一个全局变量
  2.      Clear a global variable
  3.     对应脚本:
  4.     postman.clearGlobalVariable("variable_key");
  5.     参数:需要清除的变量的key

  6. 2.清除一个环境变量
  7.     Clear an environment variable
  8.     对应脚本:
  9.     postman.clearEnvironmentVariable("variable_key");
  10.     参数:需要清除的环境变量的key

  11. 3.response包含内容
  12.     Response body:Contains string
  13.     对应脚本:
  14.     tests["Body matches string"] =responseBody.has("string_you_want_to_search");
  15.     参数:预期内容

  16. 4.将xml格式的response转换成son格式
  17.     Response body:Convert XML body to a JSON Object
  18.     对应脚本:
  19.     var jsonObject = xml2Json(responseBody);
  20.     参数:(默认不需要设置参数,为接口的response)需要转换的xml

  21. 5.response等于预期内容
  22.     Response body:Is equal to a string
  23.     对应脚本:
  24.     tests["Body is correct"] = responseBody === "response_body_string";
  25.     参数:预期response

  26. 6.json解析key的值进行校验
  27.     Response body:JSON value check
  28.     对应脚本:
  29.     tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args
  30.     参数:test替换被测的值,args替换被测的key

  31. 7.检查response的header信息是否有被测字段
  32.     Response headers:Content-Type header check
  33.     对应脚本:
  34.     tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
  35.     参数:预期header

  36. 8.响应时间判断
  37.     Response time is less than 200ms
  38.     对应脚本:
  39.     tests["Response time is less than 200ms"] = responseTime < 200;
  40.     参数:响应时间

  41. 9.设置全局变量
  42.       Set an global variable
  43.       对应脚本:
  44.       postman.setGlobalVariable("variable_key", "variable_value");
  45.       参数:全局变量的键值

  46. 10.设置环境变量
  47.       Set an environment variable
  48.       对应脚本:
  49.       postman.setEnvironmentVariable("variable_key", "variable_value");
  50.       参数:环境变量的键值

  51. 11.判断状态码
  52.       Status code:Code is 200
  53.       对应脚本:
  54.       tests["Status code is 200"] = responseCode.code != 400;
  55.       参数:状态码

  56. 12.检查code name 是否包含内容
  57.       Status code:Code name has string
  58.       对应脚本:
  59.       tests["Status code name has string"] = responseCode.name.has("Created");
  60.       参数:预期code name包含字符串

  61. 13.成功的post请求
  62.       Status code:Successful POST request
  63.       对应脚本:
  64.       tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;

  65. 14.微小验证器
  66.        Use Tiny Validator for JSON data            
  67.        对应脚本:
  68.         var schema = {
  69.          "items": {
  70.          "type": "boolean"
  71.              }
  72.          };
  73.         var data1 = [true, false];
  74.         var data2 = [true, 123];
  75.         console.log(tv4.error);
  76.         tests["Valid Data1"] = tv4.validate(data1, schema);
  77.         tests["Valid Data2"] = tv4.validate(data2, schema);
  78.         参数:可以修改items里面的键值对来对应验证json的参数
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

  • TA的每日心情
    擦汗
    2018-3-19 17:40
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2018-3-19 15:50:15 | 只看该作者
    感谢楼主分享
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-26 20:54 , Processed in 0.073901 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表