Postman自动化

作者: 自如_ | 来源:发表于2019-10-26 13:49 被阅读0次

    上面讲的都是利用Postman进行手工测试的操作,如果我们想提高测试效率,或可以在测试过程中假如自动化的代码,将代替一分部的手工操作。利用Postman进行自动化测试通常是两种方式:

    一种是利用Postman自身js代码执行沙盒,在发送请求之前写一些设置发送消息的代码。比如产生随机数字,填入当前日期时间到参数里,在接收到响应之后,写一些判断接收数据的代码。比如某个字段是否存在,某个字段的值,是否和预期的一样等。

    二是利用Postman自动生成其他编程语言代码,比如使用requests库的Python代码,直接发送相应的HTTP请求消息。当然我们同样可以使用Python代码,对请求消息加入一些动态的数值,并且检查接收的响应消息。

    9.1 使用js脚本

    Postman内置一个js语言的解释器,我们可以在API请求发送接收的前后,加入一些js代码,如下图所示的Pre-request Script 便签页里面可以加入的代码postman.setEnvironmentVariable('cureTime',new Date()),就是在发送请求之前执行的js代码。下图的代码就是将环境里面的变量timestampHeader值设置为当前的时间

    image.png

    cureTime是变量名,new Date()是js生成时间方法。点击send发送的时候就会先执行这段代码,就会生成当前时间的变量名(cureTime),我们就可以在请求的消息体使用上这个时间。比如我们有一个用例,添加一门课程并且这个课程不存在
    ,有一种方法就是在课程名里面加上一个随机的字符串,如果我加上当前的时间戳,这个课程名是不可能重复的

    image.png

    然后我们不修改请求多发送几次请求发现都是成功的, 我们发送列出课程的接口,看看有哪些课程

    image.png

    大家可以看到数据都是不重复的,但是有个缺点名称太长,其实有把js代码转换成年月日的形式

    image.png

    代码:

    var d = new Date();
    var strDate = d.getFullYear().toString()+"-"+((d.getMonth()+1).toString().length==2?(d
    .getMonth()+1).toString():"0"+(d.getMonth()+1).toString())+"-"+(d.getDate().toString
    ().length==2?d.getDate().toString():"0"+d.getDate().toString());

    postman.setEnvironmentVariable('cureTime',strDate);

    我这里cureTime是放在环境的变量里面,一旦执行之后,就会放在环境里面

    image.png

    这里要了解一下,会python的同学就不需要用这个方法了,后面我们会有python代码的操作。有的同学会疑问这个能不能放在全局变量里面,当然是可以的我们看右边SNIPPETS

    image.png

    SNIPPETS就是代码的片段,比如我们要写在全局变量里面我们可以点击Set a global variable

    image.png

    就会自动生成全局变量的代码,我们只要稍作修改就好了

    image.png

    然后在请求中使用就OK了

    postman还有一个检查的功能Tests,不仅仅可以生成一个动态的数据,还可以发送之后接收的结果他可以做一个简单的检查,比如我们检查结果里面是否有retcode字段,我们可以看下SNIPPETS有没有检查,他这里有Response body:Contains string就是响应的消息体中是否包含了某一个字符串,我们点击一下就会生成相应的代码

    image.png

    稍作修改,就是检查消息体中是否包含了retcode

    image.png

    大家注意以前我们在执行Postman,执行完了之后这个Test Result是没有结果的

    image.png

    现在我们在运行一下

    image.png

    Test Result就有结果了,我们可以看到是PASS,就是里面包含retcode,还有一些检查点,大家可以自己去了解下

    总结:

    Postman不适合做自动化测试

    • 自动化测试应该做到
      1.自动化用例能够完成所有的测试步骤
      2.每个用例的输入数据(API请求中的数据),必须要自动填入
      3.每个用例的结果检查(多个步骤),必须可以用代码自动完成
      4.初始化、清除功能

    • 主要使用场景
      1.手工测试
      2.半自动化测试(可以做一些请求数据的动态生成,用例结果做一些自动化代码的检查)可以做一些,但是很多情况下光靠他还不行,还得我们人的干预,我们要认清Postman,最主要是手工测试,适合没有编码能力的测试

    相关文章

      网友评论

        本文标题:Postman自动化

        本文链接:https://www.haomeiwen.com/subject/mgwyvqtx.html