zoukankan      html  css  js  c++  java
  • Postman

    Postman的Tests标签可以用来写测试:

    本质上是javascript code,可以为tests object设置values。这里使用描述性文字作为key,检验body中的各种情况,当然你可以创建任意多的key,这取决于你需要测试多少点。 tests也会随着request保存到collection中。api测试保证前端后台都能正常的于api协作工作,而不用在出错时猜测是哪里的问题。 需要在request的test中创建了test后,再进行request,test的结果在body的test中查看。 注意: 1.这里的key描述必须是唯一的,否则相同描述只会执行第一个。 2.这里的key可以使用中文。 例子: tests[“Body contains user_id”] = responseBody.has(“user_id”)
    这里描述性的key为:Body contains user_id。检测点为:responseBody.has(“user_id”),意思是检测返回的body中是否包含”user_id”这个字段。
    查看responses中的Tests结果:记过显示每个key,也就是我们测试点的具体结果,是否通过。

    Testing Sandbox

    • postman的测试是运行在沙箱环境,是与app独立的。查看什么在沙箱中是可用的,参见Sandbox documentation.

    Snippets

    • 用于快速添加常用的测试代码。可以自定义snippets。

    Viewing results

    • postman每次执行request的时候,会执行tests。测试结果会在tests的tab上面显示一个通过的数量。

    Testing examples

    测试代码会在发送request并且接收到responses后执行。

      • 1.设置环境变量 postman.setEnvironmentVariable("key", "value");
      • 2.设置全局变量 postman.setGlobalVariable("key", "value");
      • 3.检查response body中是否包含某个string tests["Body matches string"] =responseBody.has
        ("string_you_want_to_search");
      • 4.检测JSON中的某个值是否等于预期的值
        var data = JSON.parse(responseBody);tests["Your test name"] = data.value === 100;
        JSON.parse()方法,把json字符串转化为对象。parse()会进行json格式的检查是一个安全的函数。 如:检查json中某个数组元素的个数(这里检测programs的长度)
        var data = JSON.parse(responseBody);tests["program's lenght"] = data.programs.length === 5;
      • 5.转换XML body为JSON对象 var jsonObject = xml2Json(responseBody);
      • 6.检查response body是否与某个string相等 tests["Body is correct"] = responseBody === "response_body_string";
      • 7.测试response Headers中的某个元素是否存在(如:Content-Type)
        tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); //getResponseHeader()方法会返回header的值,如果该值存在
        或者:
        tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");
        上面的方法,不区分大小写。下面的方法,要区分大小写。
      • 8.验证Status code的值 tests["Status code is 200"] = responseCode.code === 200;
      • 9.验证Response time是否小于某个值 tests["Response time is less than 200ms"] = responseTime < 200;
      • 10.name是否包含某个值 tests["Status code name has string"] = responseCode.name.has("Created");
      • 11.POST 请求的状态响应码是否是某个值 tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;
      • 12.很小的JSON数据验证器
        var schema = { "items": { "type": "boolean" }};var data1 = [true, false];var data2 = [true, 123];console.log(tv4.error);tests["Valid Data1"] = tv4.validate(data1, schema);tests["Valid Data2"] = tv4.validate(data2, schema);
        结果:
  • 相关阅读:
    JS内置对象-Array之splice-删插替
    for-in的缺点
    Obeject.hasOwnProperty
    JS中的深拷贝和浅拷贝
    函数中this的指向
    CSS预处理器之less和sass
    [转]javaweb学习总结(四十四)——监听器(Listener)学习
    [转]javaweb学习总结(四十三)——Filter高级开发
    [转]javaweb学习总结(四十二)——Filter(过滤器)学习
    [转]javaweb学习总结(四十一)——Apache的DBUtils框架学习
  • 原文地址:https://www.cnblogs.com/PerformanceTesting/p/15234948.html
Copyright © 2011-2022 走看看