Postman接口测试脚本编写规范

Postman接口测试脚本编写规范

1.前言

  • 本规范的目的是保证测试部成员编码的统一。
  • 本规范的核心规则就是接口测试脚本命名规则。

2.名词解释

  • 业务流程测试用例:关于产品业务、重要流程的测试用例。

3.接口测试脚本规范

3.1接口测试脚本编写的规范

1)基本信息

在每个脚本模块的最上面,必须写上脚本编写人(使用英文名或中文拼音缩写)、脚本创建时间、脚本修改时间、修改说明、输入参数、输出参数、脚本描述等。

2)命名规范

常量、变量、参数、函数的命名统一采用驼峰命名法,即第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母,

例如:myFirstName、myLastName。

3)代码注释规范

注释要尽量简单,清晰明了。着重注释的意思,对不太直观的部分进行注解。此外,JavaScript 的注释有两种"//" 和"/* .... */",建议"//"用作代码行注释,"/* .... */"形式用作对整个代码段的注销,或较正式的声明中,如函数参数、功能、文件功能等的描述中。

4)空行

空行是区分代码块与块的间隔,在函数之间必须加上空行;而在函数内部,变量声明块和实现块(实现块指除变量声明外的其他代码)要使用空行来间隔,实现块的内部,通过空行来标识一个功能段。

5)缩进

必须严格执行缩进,变量声明块不缩进,实现块必须保证全部缩进(不可能有实现块是行首对齐的);对于基本的控制结构来说,必须要有缩进,如IF、DO、WITH、FOR、WHILE块。

6)续行

对于过长的语句来说,必须使用续行,续行位置要有明显意义,例如,sql ="SELECT [code],[name] FROM [Person]"_&"WHERE [code] LIKE‘001%‘"。

7)==和!=

在JS中有=、==、===三种形式,其中“=”表示赋值、“==”表示一般比较只要求值相等,“===”表示严格比较要求值和类型都相等。一般情况下除赋值外,比较采用“==”即可。

8)[ ]和{ }

[  ]表示数组,{  }表示对象

注意:在任何地方,不要写ElseIf语句,最好转换成If…Else…Endif结构。

3.2 Postman使用规范

1)环境变量和全局变量

变量命名规则同样采用驼峰命名法。

2)文件夹和单个接口脚本的描述

文件夹是一组具有逻辑关系或是属于相同模块的接口集合(如购买流程、用户个人中心模块),在其描述中要注明a.执行该组接口的前提条件;b.执行该组接口的内容;c.执行该组接口的目的。

单个接口是指具体到接口的用途如上传文件、创建项目、获取列表等,在其描述中同样需要注明a.执行该接口的前提条件;b.执行该接口的内容;c.执行该接口的目的。

3)Postman—tests内置脚本

(1). 清除一个全局变量 Clear a global variable

对应脚本:

postman.clearGlobalVariable("variable_key");

参数:需要清除的变量的key

(2).清除一个环境变量  Clear an environment variable

对应脚本:

postman.clearEnvironmentVariable("variable_key");

参数:需要清除的环境变量的key

(3).response包含内容  Response body:Contains string

对应脚本:

tests["Body matches string"] =responseBody.has("string_you_want_to_search");

参数:预期内容

(4).将xml格式的response转换成Json格式  Response body:Convert XML body to a JSON Object

对应脚本:    var jsonObject = xml2Json(responseBody);

参数:(默认不需要设置参数,为接口的response)需要转换的xml

(5).response等于预期内容  Response body:Is equal to a string

对应脚本:

tests["Body is correct"] = responseBody === "response_body_string";

参数:预期response

(6).json解析key的值进行校验 Response body:JSON value check

对应脚本:

tests["Args key contains argument passed as url parameter"] = ‘test‘ in responseJSON.args

参数:test替换被测的值,args替换被测的key

(7).检查response的header信息是否有被测字段 Response headers:Content-Type header check

对应脚本:

tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");

参数:预期header

(8).响应时间判断 Response time is less than 200ms

对应脚本:

tests["Response time is less than 200ms"] = responseTime < 200;

参数:响应时间

(9).设置全局变量 Set an global variable

对应脚本:

postman.setGlobalVariable("variable_key", "variable_value");

参数:全局变量的键值

(10).设置环境变量 Set an environment variable

对应脚本:

postman.setEnvironmentVariable("variable_key", "variable_value");

参数:环境变量的键值

(11).判断状态码  Status code:Code is 200

对应脚本:

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

参数:状态码

(12).检查code name 是否包含内容 Status code:Code name has string

对应脚本:

tests["Status code name has string"] = responseCode.name.has("Created");

参数:预期code name包含字符串

(13).成功的post请求Status code:Successful POST request

对应脚本:

tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;

(14).微小验证器Use Tiny Validator for JSON data

对应脚本:

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);

参数:可以修改items里面的键值对来对应验证json的参数

4.单个接口测试

1)接口

接口是组成流程测试的基本单元,组合不同的业务接口可以实现不同的业务流程测试。如创建项目+查询项目+修改项目组成了一个关于项目的测试流程。

2)接口测试的优点

5.整个流程的开发过程

使用接口测试业务流程,需要对产品需求、产品所涉及的行业有一定的深度的了解,业务流程分为通用流程和被测产品专用流程。

通用流程如注册登录、上传文件等,专用流程是被测产品特有的流程,以创盟项目为例

原文地址:https://www.cnblogs.com/TomBombadil/p/11005265.html

时间: 2024-10-11 18:06:06

Postman接口测试脚本编写规范的相关文章

Postman 接口测试神器

Postman 接口测试神器 Postman 是一个接口测试和 http 请求的神器,非常好用. 官方 github 地址: https://github.com/postmanlabs Postman 的优点: 支持各种的请求类型: get.post.put.patch.delete 等 支持在线存储数据,通过账号就可以进行迁移数据 很方便的支持请求 header 和请求参数的设置 支持不同的认证机制,包括 Basic Auth,Digest Auth,OAuth 1.0,OAuth 2.0

【技术博客】Postman接口测试教程 - 环境、附加验证、文件上传测试

Postman接口测试教程 - 环境.附加验证.文件上传测试 v1.0 作者:ZBW 前言 继利用Postman和Jmeter进行接口性能测试之后,我们发现Postman作为一款入门容易的工具,其内置的一些高级功能足够帮助我们对网站进行全面的接口测试.本文首先将介绍两个比较关键的功能:环境(Environment)和附加代码(Pre-request Script和Tests),这两个功能能够帮助我们对接口进行更加复杂的验证,如验证接口返回的信息等.除此之外,本文还将介绍文件上传测试的运行方式.

Sqoop 脚本开发规范(实例手把手带你写sqoop export和sqoop import)

首先,先明确,为什么Sqoop需要规范的脚本开发呢? 答:是因为,Sqoop import HDFS/Hive/HBase这些都是手动.但是在实际生产里,有时候,需要用脚本来完成. 比如,通过shell脚本来操作对Sqoop.Hive.HBase.MapReduce.HDFS.Spark.Storm等各种. Sqoop 脚本开发规范 目录规范 1.目录结构体系 /home/hadoop(开发用户)/app/djt(数据来源.业务)/sh/sqoop 示例:/home/hadoop/app/djt

HTML和CSS的代码编写规范

在很多开发人员眼里,编码HTML简直容易极了,编写CSS不但简单有时还会显得很繁琐-相同的属性得一个劲不停地写.为此,曾经自己也迷惑过也遇到过不少问题,但随着写&读的前端代码渐渐增多,慢慢体会到,“能写”和“会写”之间还是有一定距离的.很多时候,你可以“这样做”,但并不意味着“你应该”这么做. 合理地编写HTML和CSS,可以让代码看起来更专业.即便是很简单的几行代码,也要写的有性格.嗯~用饱含工匠精神的态度去写码,你一定会在苦逼中作乐的. 以下整理些从别人那读到学到的,同时自己认可的琐碎的点,

数据库应用SQL编写规范

1. 编程规范 本章讲述ORACLE数据库SQL脚本编码规范. 1.1. 总述 1.1.1. 编码规范 1)编写脚本时,Oracle保留字大写,其他一律使用小写,除非必要(如:作字符串时或注释语句中): 2)脚本必须规范,SQL编写不能采用缩略写法:如INSERT INTO中的INTO不能省略:INTO后面要列出字段名: 3)语句内的空格,统一为一个空格: 4)表定义中,字段名.字段类型(长度).缺省.(非)空.字段注释都必须左对齐: 5)使用空格键对齐,不要使用Tab键: 6)运算符前后,各保

LoadRunner接口脚本编写过程中遇到的问题及分享

工作中需要接口测试,报文编辑器一条条手工发费时费力,因此考虑利用web_submit_data函数POST方法进行报文编辑.在报文编辑中主要遇到了三个问题,其中一个问题耗时两天查到问题所在,在这里与大家一块分享. 问题1:我们支持报文头报文体分开的报文和只有一个xml格式的报文并行.因此对只有一个xml格式的报文编辑完后,在LR执行成功,但在系统中没查到相关日志.排查问题时多次编写了报文,并对web_submit_data函数的配置进行更改.对参数化的变量进行多次检查.......,就在今天早上

Shell脚本编程规范与变量

主要内容 Shell脚本编程规范 Shell脚本应用场景 Shell编程规范 管道与重定向 Shell脚本变量 自定义变量 特殊变量 Shell脚本概述 Shell脚本的概念 将要执行的命令按顺序保存到一个文本文件 给该文件可执行权限,便可运行 可结合各种Shell控制语句以完成更复杂的操作 Shell脚本应用场景 重复性操作 批量事务处理 自动化运维 服务运行状态监控 定时任务执行 编写第一个Shell脚本 1.编写脚本代码 使用vim文本编辑器,每行一条Linux命令, 按执行顺序依次编写:

linux驱动模块编写规范以及Makefiel文件的编写规范

内核驱动模块的编写规范 驱动模块一般涉及的必用的头文件: <linux/init.h><linux/module.h><linux/kernel.h> 驱动模块的入口函数的规范: int __init entry_name(void){ /*xxx*/ return 0;} module_init(entry_name); 驱动模块的出口函数规范: void __exit exit_name(void){ } module_exit(exit_name); 模块的信息的

LoadRunner脚本编写

一.脚本编写 案例一 Action() { //请求1 web_custom_request("WebTours", //可以自定义 "URL=http://127.0.0.1:1080/WebTours/", //Get请求的地址 "Method=GET", //方式GET "Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源 "RecContentType=text/html&q