说到Postman相信大家都已经很熟悉了,我们平时用它可以做API测试,trouble shooting,辅助开发等,能够很方便的进行手工测试和调试。
今天我们来说postman除了这些功能之外的其他的用法。
Newman的基本功能
安装和运行简单的脚本
上面提到了postman的基本功能,但是postman也提供了Non GUI的形式,也就是newman。newman的安装很简单,直接用命令npm install -g newman就可以安装,或者下载安装包后配置一下环境变量后也可以直接使用。脚本可以直接从postman中导出,导出之后直接可以通过命令newman run mycollection.json运行。
提供运行的参数和选项
Newman提供很多运行的选项,通常用的
-e,--environment指的是运行文件的时候需要哪些环境变量,这个环境变量和postman中运行collection的环境变量是一样的
-d,--data 指的是运行脚本时文件是哪个,文件可以是.json文件,也可以为.csv的文件。Postman里面也可以在Runner里面指定运行时需要的文件,用于批量运行脚本。使用的场景是当我们需要将一个API根据不同的数据运行多次的时候。
-n,--iteration-count,这个很好理解,适合于我们需要将一个API运行多次的时候。
还有一些其他的用法比如--delay-request,--timeout-request等,官方网站上都有很详细的解释,大家有时间可以了解一下。
Assert功能
Postman提供很丰富的assert功能,实际上newman提供所有的JS语法,只需要将assert写在Test的tab下面即可,当把postman的请求导出之后,assert语句也会被放在生成的jason文件之中,如下图:

npm工程化
由于newman本身支持的是js语言,而且导出的文件也jason的文件,所以一般如果我们的项目是js的工程,集成起来非常方便,但是如果非要和gradle或者maven等集成,技术本身也是没有问题的。
与Jenkins集成
平时做接口自动化,避免不了最后通过Jenkins做构建。既然Newman提供了控制台命令执行方式,那么像通过Jenkins来构建也就容易多了。只需要在在Jenkins 机器上安装Newman。然后新建个Job,构建选择Execute Windows batch command,并输入newman 运行命令就可以了,本身与其他的工具或者框架的构建区别不大。
造数据和简单的性能测试
由于postman提供runner的功能,在里面我们可以定义一个API运行的次数,delay时间,等当我们运行一些简单的API测试,或者造数据的时候,我们可以用postman来做。
之前有一个例子是造数据,因为我们需要早上万条数据, 如果用人工或者UI的自动化去造数据,是不可能的,所以我们选择了从API层面去造数据,但是有一些特殊的需求是,我们在造数据的时候,某些字段必须是不能重复的字段,所以在调用完一个API之后我们需要动态的改变一些指,我们也是在Post的test Tab下写了脚本去实现。 如下,先定义了一个环境变量,然后再调用的过程中动态的修改这个变量:

当然postman也可以做一些简单的性能测试,比如之前遇到的场景是有一个API去调用数据库,生成一个唯一的数字,我们也可以简单的配置API的调动次数,来验证数据库的并发,甚至可以多开几个postman的runer客户端去运行,来确保并发。
具体的例子
项目上遇到的场景是,我们需要对google提供某个server进行API的验证,调用的方式很简单,都是一些get的请求,get的方法里面可以带一些参数,需求是,参数分为不同的组,不同的组得到不同的返回,相同组的参数得到相同的返回,参数在不同组内不重合。
比如,分十组,组1里面的参数为a,b,c. 组2的参数为d,e,f。那们当我传a,b或者c的时候我希望得到相同的返回X,而传d,e,f的时候我希望得到另外一个返回Y。用到的也是newman里面的data和环境变量。下面是data文件的定义,API会依次去传入下面的参数,依次运行3遍:

下面是调用API时传入的环境变量(用于区分不同的环境)以及npm的工程化:

个人认为Postman/newman在API测试方面提供丰富的功能,只要不是非常繁琐和复杂的API调用,完全能够满足大多数项目的需求
网友评论