一、公共函数

postman中定义公共函数如下

1、每次断言的时候都需要重写或者复制之前的断言代码,可以通过如下方法定义断言的公共函数,以后每次断言的时候只需要调用公共函数即可进行断言

设置公共函数对断言代码进行二次封装,示例如下,注意:二次封装的代码设置成全局变量之前必须与下面断言的代码放在一处保存,否则会报错

走到这一步,对单个接口进行断言的二次封装已经结束,又因为Tests中二次封装的断言语法是每个接口中Tests所私有的,因此我们要把上面封装的两个断言方法设置成快捷键以便设置成全局变量,到达所有接口都能调用它的目的

把断言代码设置成公共函数要用到eval()函数,eval()函数具有将字符串转换成代码的功能

因此这里可以利用eval()函数的特性将二次封装断言的两句代码设置成全局变量(公共函数),并把common_function_equa、common_function_equa设置为全局变量

此时,已经将两个公共函数设置成了全局变量,取出全局变量中的值,只需要调用全局变量的代码就好啦

其实可以把所有的函数都做成一个公共函数,直接调用全局变的代码即可运用,所有函数写成一行再写入全局变量中Pre-request-Script中const转换成代码需要把const改成var,公共函数也可以放pre中,pre与tests中的脚本是相互独立的

代码如下:

//二次封装

var assertEqual=(name,actual,expected)=>{tests[`${name}: 实际结果为: ${actual}: 期望结果为: ${expected}`] = actual===expected};
var assertNotEqual=(name,actual,expected)=>{tests[`${name}: 实际结果为:${actual}:期望结果为: ${expected}`]=actual !==expected};

assertEqual('[验证获取token的有效时间为7200]',expires_in,7200);
assertNotEqual('[验证获取token的有效时间不为7300]',expires_in,7300);

var s='var a =10 ; var b =20';
eval(s);
tests[a+b] = true;

var commmon_function_equal = 'var assertEqual=(name,actual,expected)=>{tests[`${name}: 实际结果为: ${actual}: 期望结果为: ${expected}`] = actual===expected};';

var common_function_notequal = 'var assertNotEqual=(name,actual,expected)=>{tests[`${name}: 实际结果为:${actual}:期望结果为: ${expected}`]=actual !==expected};';

二、newman

mewman是为postman而生没专门用来运行postman编写好的脚本,是要newman,你可以很方便的用命名行来执行postman collections

1、newman的安装:

1、先下载Node.js,自行百度

2、安装成功后CMD输入node,如果没有报错二是显示版本号则说明安装成功

3、安装newman:CMD输入npm install -g newman,待命令行运行完毕后 newman -v检查是否已经安装成功,安装成功会显示版本号

2、newman的使用

1、桌面新建文件夹(规范化) env:存储环境变量配置   scripts:存储导出的postman脚本  testsdata:存储测试数据 reports:存储测试报告

2、新建新的收集器

3、导出收集器放入上面文件夹scripts目录下

4、通过命令行的方式运行这个脚本:需要进入这个文件夹中输入 newman run +脚本的全名,值得注意的是我们在导出脚本之前记得先保存再导出,我们也可以通过 newman run +脚本的分享链接运行脚本

对于指定的环境文件路径,编辑请求环境变量并设置环境编辑并下载环境变量的配置,需要保存至env文件中,再运行脚本

全局变量与环境变量设置一样,下载值env中,注意需要重新导出执行的脚本

迭代及运行指定的文件夹,百度参数化文件为例

生成测试报告、第一次生成测试报告会报错,再运行一次就好了

五、postman公共函数及newman运行与生成测试报告的更多相关文章

  1. (appium+python)UI自动化_09_unittest批量运行测试用例&生成测试报告

    前言 上篇文章[(appium+python)UI自动化_08_unittest编写测试用例]讲到如何使用unittets编写测试用例,并执行测试文件.接下来讲解下unittest如何批量执行测试文件 ...

  2. Postman高级应用——流程控制、调试、公共函数、外部数据文件

    postman客户端下载地址:https://www.getpostman.com/apps 目录 流程控制 调试 公共函数 外部数据文件 流程控制 流程控制简言之就是设置接口的执行顺序,流程控制只有 ...

  3. postman定义公共函数

    对于postman定义公共函数,相信很多小伙伴并不是很了解,下面给大家带来了一点福利,一起来看看吧.1.判断是否超时(assertNotTimeout)

  4. postman常用公共函数

    常用公共函数: 1).判断是否超时(assertNotTimeout):var hasResponse=postman.getResponseHeader('Content-Type')?true:f ...

  5. Linux Shell系列教程之(十五) Shell函数简介

    本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell系列教程 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高 ...

  6. phpcms公共函数库 总结

    *  global.func.php 公共函数库 /** * 返回经addslashes处理过的字符串或数组 * @param $string 需要处理的字符串或数组 * @return mixed ...

  7. postman(八):使用newman来执行postman脚本

    通过之前的了解,我们知道postman是基于javascript语言编写的,而导出的json格式的postman脚本也无法直接在服务器运行,它需要在newman中执行(可以把newman看做postm ...

  8. postman自定义函数实现 时间函数

    一:主要内容 postman环境变量方式封装格式化日期函数:yyyy-MM-dd HH:mm:ss postman利用moment模块实现格式化日期函数:yyyy-MM-dd HH:mm:ss 二:p ...

  9. ThinkPHP3自动加载公共函数文件

    7d 根目录 ├─Application 应用目录 │ ├─Common 公共模块 │ │ ├─Common 公共函数文件目录 │ │ │ ├─index.html │ │ ├─Config 配置文件 ...

随机推荐

  1. vue 树形数据增加属性并计算树节点的深度

    需求:在一组菜单树结构中转换数据结构(增加一些属性),并计算该树结构的节点深度. 实现util.js: function transferTreeData(arr, vm, list, level, ...

  2. python之routes入门

    一.入门 from routes import Mapper map = Mapper() # 创建一个mapper()路由实例对象 # connect注册路由信息 # 路由名称'zbj', 路径是 ...

  3. 10、字典dict

    字典(dict) 字典是有序,键不重复,元素只能是键值对的可变的容器 dict = {'k1':'v1','k2':'v2'} 容器 元素必须键值对 键不重复,重复则会被覆盖 data = {'k1' ...

  4. P2089_烤鸡(JAVA语言)

    题目背景 猪猪hanke得到了一只鸡 题目描述 猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢?因为他有10种配料(芥末.孜然等),每种配料可以放1-3克, ...

  5. (三)SpringBoot启动过程的分析-创建应用程序上下文

    -- 以下内容均基于2.1.8.RELEASE版本 紧接着上一篇(二)SpringBoot启动过程的分析-环境信息准备,本文将分析环境准备完毕之后的下一步操作:ApplicationContext的创 ...

  6. Android Studio 之 EditText

    EditText 简介 •简介 EditText是一个非常重要的组件,可以说它是用户和Android应用进行数据传输窗户: 有了它就等于有了一扇和Android应用传输的门,通过它用户可以把数据传给A ...

  7. 使用Vscode 开发调试 C/C++ 项目

    需要安装的扩展 C/C++ 如果是远程 Linux上开发还需要安装 Remote Development 创建工作目录后,代码远程克隆... 省略.. 创建项目配置文件,主要的作用是代码智能提示,错误 ...

  8. Dynamic Programming 动态规划入门笔记

    算法导论笔记 programming 指的是一种表格法,并非编写计算机程序 动态规划与分治方法相似,都是通过组合子问题的解来求解原问题.但是分治法将问题划分为互不相交的子问题.而动态规划是应用与子问题 ...

  9. RocketMq(一)初识

    消息中间件基本上是互联网公司必用的一个中间件,为什么要使用MQ,当然是因为能给我们的系统带来很多好处. 消息队列简单来说是一种先进先出的数据结构,先简单认识下. 一.应用场景 消息中间件主要应用场景主 ...

  10. 13. VUE 组件之间数据传递

    组件数据传递: 父组件向内传递属性---动态属性 子组件向外发布事件 solt 插槽传递模板---具名solt 1. 父组件向子组件传递数据 子组件在父组件的并作为标签引入,通过设置标签的属性传递数据 ...