通过电商项目,详解抓包到接口测试,附图片验证码 +cookie 问题处理!

通常来说,进行接口测试,开发会提供对应的接口文档给到测试,但也有例外。开发无接口文档,但领导又需要你对刚开发的软件,进行接口测试、接口自动化测试、甚至是性能测试。这个时候作为专业测试应该怎么办?

通过抓包工具获取接口信息,利用工具调通接口,接口信息不明确跟开发沟通,再进行接口测试,完美解决!

一、抓包获取接口信息

主流的抓包工具有Fiddler、Charles,如果是网站项目可用浏览器F12开发者工具。以下通过电商项目给大家演示,如何通过F12抓取接口信息。

1、打开对应电商网站,按键盘F12调出开发者窗口,点击网络视图

图片

如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386    

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

清除: 在操作到需要的功能并记录对应接口信息前,在控制台窗口被记录的前请求信息,不需要的,可点击该图标进行清除

持续记录: 勾选后,请求列表不会在每次导航到新页面时被清除。例如抓登录请求会跳转到首页,勾选后抓取到的登录信息不会清除

2、进行功能操作,获取对应接口信息

按照业务流顺序,这里先抓取【注册】接口信息,页面选择账号注册,在页面输入用户名及密码,勾选同意,点击注册,获取到【注册】接口信息如下:

接口请求信息包括:请求方式、请求地址、请求头(重点关注Content-Type)、请求体

图片

图片

图片

响应信息为: 响应头(注册接口当前不需要关注,若是登录涉及session鉴权需关注)、响应体

图片

图片

3、并将抓取到的接口信息整理到excel中作为用例,同时关注到数据库表信息用于接口测试验证。

如下:

图片

二、将抓取的接口,进行接口脚本设计及执行-Jmeter

主流接口工具和平台,例如Jmeter、postman、apifox、metersphere。

我们每抓取到一个接口的信息,及时通过接口工具调通接口,有存在问题可速度跟开发沟通。以下Jmeter为例讲解。

1、注册接口

将抓取到的注册接口请求地址、请求方式、请求头、请求体填入Jmeter工具中,添加查看结果树后,点击运行,并查看对应响应结果确保接口调通。

图片

图片

问题: 响应结果并未返回如抓包得到的json格式信息{"msg":"注册成功","code":0},而是返回xml

解决:

自行尝试或问开发,需要在请求头中添加如下字段:

Accept:application/json, text/javascript, /;

X-Requested-With:XMLHttpRequest

在Jmeter脚本中,添加HTTP信息头管理器,填入这2个字段信息,点击运行,接口调通。同时优化excel接口用例信息。

图片

图片

2、登录接口

进行的登录操作抓取到登录接口信息后,如下:

图片

问题:图片验证码怎么处理?

解决:

让开发屏蔽掉验证码

让开发提供一个万能验证码

写代码处理验证码(获取到验证码图片,然后调用图片识别技术的平台)

这里,我们找开发帮忙提供了一个万能验证码LM23,并在Jmeter操作如下:

图片

图片

3、购物车接口

在商品详情页进行加入购物车操作,将抓取到接口信息,保存在excel中:

图片

图片

问题:购物车接口,需要依赖到登录状态,需登录鉴权,Jmeter怎么处理?

观察抓取到接口信息,可以看到购物车接口请求头中有携带Cookie信息:uuid、PHPSESSID;

PHPSESSID是登录成功后,由服务器生成,并返回在响应头Set-Cookie中。

解决:添加HTTP Cookie 管理器,jmeter自动处理!

图片

图片

三、总结

以上的实操只是小试牛刀,抓包并进行接口测试,并不是简单地把抓取到的接口信息复制到工具中就能运行成功!在接口脚本设计过程中,会碰到各种各样的问题,像图片验证码处理、短信验证码处理、文件上传操作、关联接口提取数据、唯一参数值问题等等;而这些问题都是伴随着你真正的项目去实践的!

另外,工作中完整的接口测试,是从接口需求-->接口用例设计-->接口脚本设计-->接口执行,定位bug并跟踪-->接口报告总结。而不仅仅只是某个工具Jmeter或postman的操作!

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

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

相关文章

[元带你学: eMMC协议 28] eMMC 上电时序 | eMMC 上电指南

依JEDEC eMMC及经验辛苦整理,原创保护,禁止转载。 专栏 《元带你学:eMMC协议》 内容摘要 全文 1500 字, 主要内容 eMMC 上电规范 和 eMMC 上电指南, 这部分内容偏向电气特性,如果不是硬件的同学只要特别浅的了解, 一带而过。 eMMC 上电规范 eMMC 电压 VCCQ指的是接口…

视频文件批量添加字幕内容需要如何快速操作

有时候我们在剪辑视频的过程中,想要给视频素材添加上一些文字说明,需要如何操作呢?为了提高剪辑效率,今天小编来分享教学,教你如何才能批量地给视频素材添加滚动字幕,一起来看看具体的方法介绍吧。 我们先打…

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(2)-初识Fiddler让你理性认识一下

1.前言 今天的理性认识主要就是讲解和分享Fiddler的一些理论基础知识。其实这部分也没有什么,主要是给小伙伴或者童鞋们讲一些实际工作中的场景,然后隆重推出我们的猪脚(主角)-Fiddler。 1.1工作场景 做app测试,你是…

正则表达式 —— Grep

文本处理三剑客:Grep、Sed、Awk 这三个工具都是基于对文本的内容进行增删改查的操作,此篇着重介绍grep与正则表达式的应用,以及扩展正则表达式。 正则表达式 什么是正则表达式? 它是由一类特殊字符以及文本字符所编写的一种模式…

华为云零代码平台AstroZero新手操作指南-3分钟体验创建培训报名表

华为云Astro轻应用Astro Zero是华为云为行业客户、合作伙伴、开发者量身打造的低代码/零代码应用开发平台,提供全场景可视化开发能力和端到端部署能力,可快速搭建行业和大型企业级应用并沉淀复用行业资产,加速行业数字化。 在AstroZero上&am…

程序员如何向老板提加薪?

今天的问题不仅适用于程序员,对于其他职业同样适用。如果你认为自己所做的工作应该得到更多的报酬,并且想为此做点什么,你有两个选择:找一个新的高薪工作或要求加薪。 这两种选择都会带来新的焦虑,但它们都会带来新的…

gerrit 提交搞了一天的账号密码

搞了一整天的账号密码怎么输入都不对 以为输入了也不对,查找各种文档也不太行 参考也不太行: https://blog.csdn.net/qq_43279637/article/details/103595122 最后发现 是使用了git clone http 脑残方式,正确应该使用 git clone ssh 就可以…

指数函数exp

目录 指数函数及e 指数增长 复数指数 练习 1. expgui 2. 计算e 3 五角星绘制 指数函数及e (1)的比值总是常数 (2)的导数为其自身。(根据比值1推导出e的值) %% Plot a^t and its approximate derivat…

【ribbon】Ribbon的负载均衡和扩展功能

Ribbon的核心接口 参考:org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration IClientConfig:Ribbon的客户端配置,默认采用DefaultClientConfigImpl实现。IRule:Ribbon的负载均衡策略,默认采用ZoneA…

iPortal 注册登录模块扩展开发

作者:yx 文章目录 前言一、示例代码简介二、对接 iPortal REST API 接口2.1、登录模块扩展开发2.2、注册模块扩展开发 三、页面内容及样式实现四、配置启用定制页面 前言 针对注册登录模块,iPortal 允许用户通过 iFrame 方式接入自行开发的页面&#xf…

经典面试题(力扣,接雨水)

接雨水 方法一思路测试代码复杂度测试结果 方法二思路测试代码复杂度测试结果 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1]…

[JAVAee]线程安全

目录 线程安全的理解 线程不安全的原因 ①非原子性 ②可见性 ③代码重排序 体会何为不安全的线程 保证线程安全 一个代码在多线程的环境下就很容易出现错误. 线程安全的理解 线程安全是什么呢?通俗的来讲,线程安全就是在多线程的环境下,代码的结果是符合我们预期的,就…

MFC第二十一天 CS架构多页面开发与数据交互、CImageList图像列表介绍 、CListCtrl-SetItem设置列表项的方法

文章目录 CImageList图像列表介绍CListCtrl图标的原理CListCtrl列表图标设置CListCtrl-SetItem设置列表项的方法 CS架构多页面开发与数据交互添加用户实现向导多页数据交互pch.hCLientXq.h CAppCPage1.hCPage1.cppCPage2.hCPage2.cppCWorkerDlg .hCWorkerDlg.cpp 多页数据修改C…

【高危】Atlassian Confluence 远程代码执行漏洞

漏洞描述 Confluence 是由 Atlassian 开发的知识管理与协同软件,通常在企业内部用作wiki系统。 Confluence 7.19.8到8.2.0之前的版本中存在远程代码执行漏洞,具有登录权限的攻击者无需用户交互即可在 Confluence 服务器中执行任意命令。 漏洞名称Atlass…

【Boost搜索引擎项目】

文章目录 一、项目流程二、项目展示 一、项目流程 1.编写数据去标签模块–parser.cc 将去标签之后干净文档以title\3content\3url\ntitle\3content\3url\n格式放入同一文件中。 2.建立索引模块–index.hpp 读取处理好的行文本文件进行分词、权重计算等操作,在内存中…

【云驻共创】CodeArts Repo ---高效代码协同开发之旅

目录 一、代码托管发展史 1.1 第一代 1.2 第二代 1.3 第三代 二、CodeArts Repo 介绍 二、CodeArts Repo 功能架构 2.1 研发协同 2.2 代码管理功能 2.3 代码存储特性 三、CodeArts Repo 技术能力 三、华为云代码托管技术发展历程 四、CodeAr…

ubuntu挂载ext4文件系统

文章目录 1.虚拟机分配10G磁盘用来挂载ext4文件系统2.磁盘分区3.创建文件系统4.挂载文件系统5.卸载文件系统6.使用ior测试ext4三种日志模式(1)ordered(2)journal(3)writeback 1.虚拟机分配10G磁盘用来挂载e…

SpringBoot项目修改Tomcat版本号

SpringBoot项目修改Tomcat版本号 前言如果项目是以jar包形式打包部署如果项目是以war包形式打包部署示例 仰天大笑出门去,我辈岂是蓬蒿人 前言 Springboot项目,默认是使用内嵌Tomcat servlet容器形式打包部署。关于怎么修改默认的版本号,捣鼓了好久终于…

PostgreSQL 设置时区,时间/日期函数汇总

文章目录 前言查看时区修改时区时间/日期操作符和函数时间/日期操作符日期/时间函数:extract,date_part函数支持的field 数据类型格式化函数用于日期/时间格式化的模式: 扩展 前言 本文基于 PostgreSQL 12.6 版本,不同版本的函数…

基于STM32设计的人体健康监护系统(华为云IOT)

一、设计需求 1.1 设计需求总结 根据需求,要求设计一款基于 STM32 的人体健康监护系统。采用系统模块化思路进行,将多个数模传感器收集到的数据和操作指令一并送至 STM32 中心处理器进行处理分析。 该系统可以实时监测被测者的心率、体温以及周围环境的温度,也同时可以通…