用postman进行web端自动化测试

news2024/11/23 19:07:10

目录

前言

一、抓包(使用Charles抓包工具)

二、选择请求方法

三、填写url地址

四、填写Header

五、填写body

六、断言(Tests页)

七、获取动态参数——例如token

八、设置静态参数(请求地址、账号密码等)

九、创建测试套件(多个有顺序的请求集合)

十、response中的协议状态码和产品业务状态码

十一、newman


前言

概括说一下,web接口自动化测试就是模拟人的操作来进行功能自动化,主要用来跑通业务流程。

主要有两种请求方式:post和get,get请求一般用来查看网页信息;post请求一般用来更改请求参数,查看结果是否正确变化;post请求还能用来验证字段的边界值、是否能为空和验证字段可输入的类型。

web接口测试只涉及http/https请求,需要输入的内容有:请求方法、url地址、header相关信息、body相关内容、断言,下面详细说明用postman做http请求的使用步骤。

一、抓包(使用Charles抓包工具)

二、选择请求方法

GET、POST等等

三、填写url地址

Charles中看到的host+path

四、填写Header

1.Content-Type常用类型:

(1)multpart/form-data                                    表单提交数据

(2)application/x-www-form-urlencoded         form表单提交数据 (请求时需要填写的具体参数在charles的form页签看)

(3)application/json                                         json提交数据

(4)text/xml                                                     xml格式提交数据

2.cookie

所有cookie信息会在登录成功后保存在客户端,一般里面会有个sessionid,动态存储在服务器的数据库中的,当下次再访问同一网站时,客户端cookie中存储的sessionid与数据库中的进行对比,如果两者一样,请求通过。

 注意:在postman中会记录下每次请求后的cookie信息,如果不需要记得去删掉

3. User-Agent

伪装成浏览器

4.Referer

从什么地方跳转过来的

5.如果看到陌生的产品特有的header参数,需要询问开发是否要带上,可能不带上会算作非法请求

五、填写body

有如下四种,具体选用哪种必须结合上面的Content-Type类型,不一样的话会有415报错

1.form-data(对应上面的multpart/form-data )可以上传文件file

2.x-www-form-urlencoded(对应上面的application/x-www-form-urlencoded)

3.raw(对应上面的application/json或者text/xml)

4.binary(用来上传文件的)

六、断言(Tests页)

 没有断言的自动化测试是没有意义的,断言就是校验这个结果是不是我们的预期值,是的话会返回true。postman本身就有很多写好的断言,点击就会生成。

1.协议状态码校验

2.业务状态码校验

3.数据校验

注意:断言里的值不能填动态/静态参数{{}}哦!!

七、获取动态参数——例如token

 token是每次登录成功后服务器返回给客户端的随机32位字符串,之后的在线操作都需要带上token,防止非法访问,下线后会销毁,下次登录会生成一个新的。

在postman中保存动态参数的方法:

1.pm.environment.set("token_key", data.token);

2.调用时用{{token_key}}

八、设置静态参数(请求地址、账号密码等)

测试套件中可以添加设置静态参数,调用时用{{url}}

九、创建测试套件(多个有顺序的请求集合)

 测试套件在自动化中是很有必要的,可以按顺序自动执行套件里的所有请求

十、response中的协议状态码和产品业务状态码

协议状态码是http定义好的,例如404页面没找到,例如上面的415报错headers和body不一致,例如500报错服务器处理出现错误(想了解更多可以自行百度)

业务状态码是产品开发自己定义的

注意:如果发送请求后发现返回中提示“could not get any response”,记得去chales中stop SSL Proxying!!

十一、newman

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

   Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

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

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

相关文章

【Django-功能优化】存储、循环、操作选择对代码性能的影响

功能开发背景 港口货轮需要进行集装箱的装卸任务: 船上的每一个集装箱,可以用三个维度的坐标来唯一定位:(bay, column, layer),这三个维度结合其他一些固有信息,构成了一个箱子的字段属性,存储在箱子数据表…

百度的人脸识别的技术

百度的人脸识别的技术 1.基本概念 分组:分组ID(group_id):分组ID用于对一组相关的人脸进行分组和管理。你可以根据自己的需求,将不同的人脸数据分配到不同的分组中。例如, 你可以根据人员的职位、部门或其…

Nginx优化安全防盗链

1.Nginx的页面优化 1.1 Nginx的网页压缩 在Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能。进行相关的配置修改,就能实现Nginx页面的压缩,达到节约带宽,提升用户访问速度 1.2 配置Nginx的图片缓存 当Nginx将网页数据返回给…

阿里云企业邮箱免费版、标准版、集团版和尊享版区别

阿里云企业邮箱版本分为免费版、标准版、集团版和尊享版,除了价格区别,功能方面有什么差异?如何选择企业邮箱版本?免费版0元适合初创型企业,标准版适合大、中、小型企业使用,涉及子公司之间邮箱通讯可以选择…

jQuery学习

原生实现计数器 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-wi…

getopt_long 函数的使用

getopt_long 函数的使用网上已经有很多了&#xff0c;这里只是记录一下方便自己后续查找。首先函数原型声明&#xff1a; #include <getopt.h>int getopt_long(int argc, char *argv[],const char *optstring,const struct option *longopts, int *longindex); 函数是用…

Navicat使用导入向导批量插入数据到数据库

Mybatis,"可持久层数据库框架" Html,"超文本标记语言" Css,"网页外设计语言" JavaScript,"用户行为交互" Jquery,"提升网页开发效率的一种框架" Vue,"前端开发框架" Vant,"前开发预装组件库" git,"…

SM2算法对比RSA算法,有哪些优势?

SM2算法和RSA算法都是公钥密码算法&#xff0c;SM2算法是一种更先进安全的算法&#xff0c;在安全性能、速度性能等方面都优于RSA算法&#xff0c;在我国商用密码体系中被用来替换RSA算法。国家密码管理局于2010年12月17日发布了SM2算法&#xff0c;并要求现有的基于RSA算法的电…

《面试1v1》Redis基础

&#x1f345; 作者简介&#xff1a;王哥&#xff0c;CSDN2022博客总榜Top100&#x1f3c6;、博客专家&#x1f4aa; &#x1f345; 技术交流&#xff1a;定期更新Java硬核干货&#xff0c;不定期送书活动 &#x1f345; 王哥多年工作总结&#xff1a;Java学习路线总结&#xf…

Golang/Python 调用 openAI 的API 详解

学习目标&#xff1a; OpenAI API介绍 学习如何通过 Golang 使用 OpenAI 的 API OpenAI 的常用的参数及其说明 了解OpenAI API 中令牌&#xff08;tokens) OpenAI API 提供了几个不同的终端点&#xff08;endpoints&#xff09;和模式&#xff08;modes&#xff09; 复杂和…

【已解决】Java 中导入excel时使用 trim() 无法去除空格的解决方法

使用trim无法去除空格的解决方法 一、问题描述二、原因分析三、解决方案方案一&#xff1a;使用正则表达式方案二&#xff1a;使用String.strip()方案三&#xff1a;使用 hutool的 StrUtil.trim()方法 四、总结 一、问题描述 在excel导入操作时&#xff0c;读取cell中的字符串…

自学Python 69 Selenium八大元素定位方法(新版BY方法)

Python Selenium八大元素定位方法(新版BY方法) 文章目录 Python Selenium八大元素定位方法(新版BY方法)前言一、常用的八种定位方法&#xff08;新旧对比&#xff09;二、查看网页元素三、八大元素定位示例1、id定位2、name定位3、class定位4、tag定位5、link定位6、partial_li…

MySQL - 第9节 - MySQL内外连接

目录 1.内连接 2.外连接 2.1.左外连接 2.2.右外连接 3.简单案例 1.内连接 • 表的连接分为内连接和外连接。 • 内连接实际上就是利用where 子句对两种表形成的笛卡儿积进行筛选&#xff0c;我们前面学习的查询都是内连接&#xff0c;也是在开发过程中使用的最多的连接查…

【C++】模板初级内容(函数模板,类模板)

文章目录 前言一、函数模板1.1 函数模板概念1.2函数模板格式1.3模板的原理&#xff1a;1.4函数模板的实例化 二、类模板2.1 类模板的定义格式2.2定义与声明分离要注意的点 前言 告诉编译器一个模子&#xff0c;让编译器根据不同的类型利用该模子来生成代码 模板分为函数模板与类…

MES系统常用的数据采集网关

随着制造业的数字化转型&#xff0c;MES&#xff08;制造执行系统&#xff09;在生产过程中的重要性日益凸显。MES系统作为连接企业资源和生产现场的桥梁&#xff0c;需要实时、准确地采集和整合工业设备的数据&#xff0c;以支持生产调度、质量管理、库存控制等关键业务。为了…

探索Gradio Audio模块的change、clear和play方法

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

C#常见技能_封装

大家好&#xff0c;我是华山自控编程朱老师 前几天一个学员在学习C#与封装交互时,也不知道封装可以用来做什么 。下面我们就详细讲讲C# 和封装交互的相关知识。 C#是一种面向对象的编程语言&#xff0c;封装是面向对象编程中的一个重要概念&#xff0c;通过封装可以将数据和操…

CAN(1)-GD32

CAN-GD32 电路 CAN 是 Controller Area Network 的缩写,是 ISO 国际标准化的串行通信协议。 CAN总线的很多优点,使得它得到了广泛的应用,如传输速度最高到1Mbps, 通信距离最远到10km,无损位仲裁机制,多主结构。 CAN总线的标准 CAN总线标准之规定了物理层和数据链路层…

并发和并行的区别

目录 背景过程例子&#xff1a;定义&#xff1a;并发解决办法&#xff08;Redisson&#xff09;&#xff1a;解决并发步骤&#xff08;Redisson&#xff09;&#xff1a; 总结 背景 在设计Arpro第三版的时候马总提出了一个问题&#xff0c;我们认为人家表达是并发问题&#xf…

吉他如何实现内录or通过转接头和简易声卡连接电脑没有声音怎么办

目录 效果器or智能音箱 电吉他和效果器的连接 效果器和耳机or音箱连接 内录方法 为什么用6.5mm&#xff08;入&#xff09;转3.5mm&#xff08;出&#xff09;转接头内录无声音 整体连接图示 这篇文章我会以通俗的语言为初学者描述如何让电吉他“燃起来”&#xff0c;效果…