python做自动化控制postman_使用postman+newman+python做接口自动化测试

postman是一款API调试工具,可用于测试接口,相类似的工具还有jmeter、soupUI。通过postman+newman+python可以批量运行调试接口,达到自动化测试的效果。

1、PostMan安装

共有两种方式,一种是chrome浏览器上的插件,一种是postman客户端。我使用的是postman客户端。

1)在Chrome浏览器怎么安装Postman

https://www.cnblogs.com/mafly/p/postman.html

2)安装Postman客户端

a、下载软件https://www.getpostman.com/apps

b、安装

2、使用

1)发送请求、查看响应

2)环境变量、全局变量

环境变量:只作用于设置的环境

设置环境变量:pm.environment.set("variable_key", "variable_value");

获取环境变量:pm.environment.get("variable_key");

全局变量:作用于所有环境

设置全局变量:pm.globals.set("variable_key", "variable_value");

获取全局变量:pm.globals.get("variable_key");

使用例子:

var data=JSON.parse(responseBody);

var act=data.data.accessToken;

postman.setGlobalVariable("accessToken", act);

postman.setGlobalVariable("userId", data.data.userId);

postman.setGlobalVariable("refreshToken", data.data.refreshToken);

var afterUrl="?access_token="+act+"&userId="+data.data.userId;

pm.globals.set("afterUrl", afterUrl);

console.log(afterUrl)

使用变量:

在使用的变量地方用 {{variableName}}代替

具体查看文档:https://www.getpostman.com/docs/postman/environments_and_globals/variables

3)设置断言

tests["Your test nickName"] = data.data.nickName === "2589" //响应内容 nickName =2589

pm.test("Status code is 200", function () {

pm.response.to.have.status(200);

}); //返回为200

var responseJSON=JSON.parse(responseBody);

tests[‘response matches the data posted‘] = (responseJSON.data && responseJSON.data.length === 10);

//返回data数据共10条

4)调试console

需要在postman客户端,点击 view->show postman console 调出

在test或 Pre-request Script中写脚本打印出有疑问的值

console.log(variableName); 之后运行请求

5)collection

需要在postman客户端,点击collection->Runner ,运行

具体查看文档:https://www.getpostman.com/docs/postman/collection_runs/starting_a_collection_run

6)具体使用如下图

\

7)导出json文件

2、newman安装

官方帮助文档地址:https://www.npmjs.com/package/newman

1)需要安装nodejs,并配置好环境

2)打开控制台,运行:npm install -g newman

3)校验是否安装成功,运行:newman --version

Newman 执行脚本

Newman在3版本后做了比较大的改动,但是运行命令越来越简单如下:

newman run [options]

run 后面跟上要执行的json文件或者URL(json 和 URL 都由postman导出生成),再后面跟一些参数,例如环境变量,测试报告,接口请求超时时间等等。最后给两个完整的例子做参考:

newman run D:/Buddy_Product_Enviroment.postman_collection.json --reporters cli,html,json,junit --reporter-json-export D:/jsonOut.json --reporter-junit-export D:/xmlOut.xml --reporter-html-export D:/htmlOut.html

3、使用python脚本执行newman

# coding=utf-8

import time

import os

class postmanApiTest:

#运行postman生成报告

#通过newman

def postman(self):

jSONfname = ‘D:/htmlOut‘ + time.strftime(‘%Y-%m-%d‘, time.gmtime())+‘.html‘

# cmd = ‘newman run ?D:/Buddy_Test_Enviroment.postman_collection.json --reporters cli,html,json,junit --reporter-html-export ‘+jSONfname

cmd=‘newman run D:/Buddy_Product_Enviroment.postman_collection.json --reporters cli,html,json,junit --reporter-json-export D:/jsonOut.json --reporter-junit-export D:/xmlOut.xml --reporter-html-export D:/htmlOut.html‘

os.system(cmd)

print(‘------------------------------------------------------------‘)

print(jSONfname)

if os.path.isfile(jSONfname):

return jSONfname

print(jSONfname)

else:

return False

if __name__ == ‘__main__‘:

a=postmanApiTest()

a.postman()

4、最终生成报告如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

转3d视图快捷键_最全Solidworks快捷键,值得收藏!

SOLIDWORKS软件提供了很多实用的快捷键,如果我们熟练掌握这些快捷键无疑可以减轻工作强度和提高工作效率。当然我们也可以点击【工具】-【自定义】-【键盘】,自己定义一些快捷键。本文为大家整理一些常用的快捷键,多使用快捷键可以帮助我们节…

构建前端自动化工作流环境

目标:建一个自动化工作流环境 自动编译 自动合并 自动刷新 自动部署 工作流: 1 全局安装webpack 执行命令: npm install webpack webpack-cli -g 其中webpack-cil 是命令接口工具 2 初始化当前项目:npm init 然后一路回车…

大型布线:Java云应用程序缺少的技术

您是否曾经想过,为什么大多数Java框架中的依赖项注入仅用于本地进程内服务而不是分布式服务? 我最近在2013年EMC世界大会上遇到了Paul Maritz的主题演讲 (跳至第32分钟),这使我在云平台的背景下思考了这个问题。 主题…

【单镜头反光相机】CCD、CMOS

CCD、CMOS:图像传感器、电荷耦合器 CCD简介CMOS简介:①被动式 ,被动式像素结构(Passive Pixel Sensor.简称PPS),又叫无源式。 ②主动式,主动式像素结构(Active Pixel Sensor.简称APS…

CSS-定位

CSS定位:相对定位 position: relative 参照物:相对元素原来的位置进行偏移。绝对定位 position:absolute 参照物:往上级元素逐层查找,直到找有position属性的元素,以有position属性的元素为参照物来偏移&#xff0c…

java面向对象中的抽象,类与对象

一、抽象 什么是抽象?将鸽子和麻雀看做是鸟,这是抽象;将整个空调的行为用遥控代替,遥控就可以看做是空调的抽象;将外貌,种族,语言等等形形色色不同的个体看做是人这样一个概念,这也是…

剑灵系统推荐加点_剑灵重制修炼系统 无定式加点打造自我风格

这将是《剑灵(和“标准答案”说再见我们经常可以在论坛中看到类似“求刺客副本修炼”这样的帖子,也有很多热心玩家分享他们的点法。而在这些“标准答案”中,我们又可以经常看到类似“A、B、C必点,剩下的3点修炼随意”这样的论调。但其实这些并…

使用Guava对并发应用程序进行基于对象的微锁定

编写并发Java应用程序时最令人讨厌的问题之一是对线程之间共享的资源的处理,例如Web应用程序的会话和应用程序数据。 结果,如果应用程序的并发级别很低,许多开发人员选择根本不同步这些资源。 例如,不太可能同时访问会话资源&…

java cpu过高排查_涨薪秘籍:JAVA项目排查cpu负载过高

背景我负责的其中一个项目在空负载的情况下,CPU占用率依然保持着100%左右,线上、测试、开发的服务都一样;是什么导致的呢?在开发环境我查看了请求流量,这个流量可以忽略但CPU占用率一直在60%-100%之间浮动。分析问题流…

理财app说明

cordova库和魔蝎库使用的比较多 另外一个使用比较多的就是腾讯的youtu的第三方库,友盟的app统计的功能也有用 推送上使用的有激光推送、魅族推送、小米推送 另外多任务处理方面,有使用blots的库转载于:https://www.cnblogs.com/istar/p/9673249.html

巧用css的border属性完成对图片编辑功能的性能优化

一、需求场景: 最近闲来无事,boss提出了一个要求,研究相关代码并完成一个关于编辑图片功能的性能优化,该功能的主要界面展示如下: 通过了几分钟的短暂试用,发现就是一个简单的裁剪并保存用户选择并上传的图…

『Balancing Act 树的重心』

树的重心 我们先来认识一下树的重心。 树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 根据树的重心的定义,我们可以通过树形DP来求解树的重心。 设\(Max_i\)代…

求数的绝对值一定是正数_人教版初中数学七年级上册绝对值公开课优质课课件教案视频...

绝对值(习题课)导学案(教师版)【教学目标】1、能利用绝对值的性质求值。 2、通过复习绝对值,让学生对绝对值的理解更加深透。 3、通过复习,让学生掌握利用绝对值的代数和几何意义,并学会灵活运用…

使用Java EE安全性和JBoss AS 7.x保护JSF应用程序的安全

企业应用程序的常见要求是在登录页面后面保护所有JSF页面。 有时,您甚至希望在应用程序内部具有保护区,只有拥有特定角色的用户才能访问这些保护区。 Java EE标准附带实现受某些安全性约束保护的Web应用程序所需的所有方法。 在此博客文章中,…

java 十六进制转十进制_JAVA知识-分析JAVA中的重点和难点

Java中有很多内容在开发项目的过程中并不常用,但是却是很重要的部分,为了避免忘记,今天重新温习了一遍Java中的重点和难点,借此机会记录一下方便以后查找。本文主要分为以下几个部分:1.进制的相互转换2.Java中位运算符…

java运算符知识整理

赋值运算符: int a 0;a 2;System.out.println("a0"""".."a);int b 0;b2;System.out.println("b0""b2"".."b);int c 0;c-2;System.out.println("c0""c-2"".."c);int d 1;d*2;S…

开放才能进步!Angular和Wijmo一起走过的日子

Angular 已成为广受欢迎的前端框架。去年9月份,期待已久的 Angular2 的正式版发布之后,Angular 又迎来了新一轮热潮。伴随着 Angular 这一路走来,Wijmo 一直都是第一个全面支持各种版本 Angular 的JS控件库,为 Angular 用户提供着…

windows 检查cuda安装_Windows云主机GPU驱动-CUDA安装使用

IE安全相关配置如果打开浏览器无法正常下载,则需要设置Internet Explorer增强的安全配置。设置如下:打开"服务器管理器";点击"本地服务器";"IE增强的安全配置";选择"关闭"; 之…

镜像镜像–使用反射在运行时查看JVM内部

开发人员:Takipi会告诉您何时新代码在生产中中断– 了解更多 我们都习惯于在我们的日常工作中直接或通过利用反射的框架来运用反射。 它是Java和Scala编程的主要方面,它使我们使用的库可以与我们的代码进行交互,而无需对其进行硬编码的知识。…

UnicodeMath数学公式编码_翻译(Unicode Nearly Plain - Text Encoding of Mathematics Version 3)

目录 完整目录1. 简介2. 编码简单数学表达式2.1 分数2.2 上标和下标2.3 空白(空格)字符使用3. 编码其他数学表达式3.1 分隔符强烈推荐本文简明版UnicodeMath编码教程 本文为UnicodeMath官方文档的翻译,原文看这。翻译如有不准还请谅解&#x…