接口自动化测试之Fiddler的运用

news2024/11/24 23:08:29

1.接口介绍(基础部分)

  • 接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为
  • 应用程序编程接口,它是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力
  • 接口测试通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果
  • 目前趋向都是全后端分离模式,遵循REST接口规范,本文章不过多介绍,不懂的小伙伴可以自行搜索

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

B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibiliB站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

2.接口组成

  • 请求地址
  • 请求方法
  • 请求参数,参数类型
  • 请求头header
  • JSON、自定义传输格式等
  • 状态码

3.接口分类

主要分为web、模块接口,方式大体相差不大

  • GET(SELECT):从服务器取出资源(一项或多项)
  • POST(CREATE):在服务器新建一个资源
  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)
  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性修改一个或多个)
  • DELETE(DELETE):从服务器删除资源

5.接口测试流程

接口测试流程: 定位服务器接口资源并提交测试数据,然后查看响应结果是否符合预期

  • 定位接口资源(URL)

  • 提交测试数据

  • 检查响应结果

6.接口测试注意事项

  • 返回数据是否与预期保持一致

  • 传递错误接口数据是否能正常处理

  • 测试边界值是否能够处理

  • 接口响应时间是否合理

  • 接口的加密信息是否安全

7.接口测试工具

  • Flidder:是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是 web调试的利器。
  • jmeter:一款开源的性能测试工具,操作简单,方便,既有jdbc request操作数据库数据,也有http request和soap request应对测试
  • postman:谷歌浏览器的扩展工具,谷歌商店中选中安装,界面同poster差别不大,界面简洁
  • soapui:开源测试工具,通过soap/http协议来检查、调用、实现Web Service的功能/负载/符合性测试;
  • RestClient: Firefox上一款用于测试各种Web服务的插件,它可以向服务器发送各种HTTP请求(用户也可以自定义请求方式).
  • loadrunner:一款商业性能测试工具,可用来做接口测试、性能测试、压力测试等,很好很强大

8.Fiddler介绍(工具使用)

  • 下载Fiddler抓包工具

    官网:www.telerik.com/fiddler

  • Fiddler工作原理

    先来看看fiddler未参与时,一个普通的客户端与服务端的请求流程图:浏览器访问一个网站,浏览器给webserver发送一个Request,webserver接收到Request后进行处理,返回给浏览器Response,然后浏览器解析Response中的html,展现网页给用户。如图:

​ Fiddler工作于七层中的应用层,在client与webserver之间以代理服务器的形式存在,启动fiddler后会监听本地127.0.0.1的8888端口(默认端口),IE/Chrome浏览器会自动设置局域网代理(Firefox代理是独立的,需要单独设置),如图:

此时,fiddler就作为代理服务器,浏览器访问87testing.com的流程:浏览器给webserver发送一个Request,代理服务器fiddler接收到Request,fiddler将Request发送到webserver,webserver接收到Request后进行处理,Response到代理服务器fiddler,Fiddler将Response返回到浏览器,如图:

  • 界面介绍

9.抓取手机端的接口信息

  • 配置环境(安卓)

    1.安装手机端模拟器

    2.打开手机终端点击设置WLAN

    3.高级选项---->勾选

    4.代理设置为手动

    电脑ip地址可通过cmd命令行输入ipconfig查询,或网络连接信息中找到,最直观的方法是将鼠标置于fiddler右上角的online中即可显示电脑的ip地址。

 

5.重启fiddler软件

注意事项以上方式适用于HTTP方式,面对HTTPS的话需要进行以下设置

  • 勾选设置

  • 打开模拟器手机端的默认浏览器(切勿使用第三方浏览器)

访问本地IP:端口默认8888 下载证书!

 

  • 确认--->设置密码--->重启fiddler

10.修改返回数据及添加过滤规则

  • 启动测试web网站会出现很多无用数据比如304状态的请求

 

  • 过滤掉不是浏览器的请求选择web

  • 只展示我标识的接口Actions-->run time now

  • 过滤图片、JS、CSS,重启
# 可选择性选择过滤css|ico|jpg|png|gif|bmp|wav|js
REGEX:(?insx)/[^?/].(css|ico|jpg|png|gif|bmp|wav|js)(?.)?$

 

  • 手机端抓包软件版本需要更新,更新后的软件会禁止抓包,问题解决方案

    • 通过查看URL判断是哪个信息发送了版本信息

 

  • 判断JSON数据格式中2代表更新

  • 篡改JSON数据,利用txt更改其中的数据形式

  • 保存为HTML格式,文件名替换为发送网站的html,保存类型 所有文件

  • 替换为本地HTML模板

点击save保存

  • 重新开启手机端浏览器

11.创造大量测试数据

场景:当我们访问一些评论信息,或者大量重复信息,我评论之后还要去看分页直到加载完所有评论信息之后才能看到我的评论信息。

  • 先真实的向服务器提交一次数据,获取发送的请求

 

 

  • 开始进行消息重复发送,可自定义编辑发送

 

12.图片显示问题

图片通过cdn发送无法显示如何抓取?

工具报错无法连接如何解决?

  • 手机端下载认证后选择WLAN

 

  • 设置代理,网址不使用代理的的区域填写,就可以正常显示图片(仅限于安卓) 

13.解决fiddler无法抓包问题

  • 查看本机是否存在防火墙设置(建议关闭)

 

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

开源项目合集....

likeshop开源商城系统,公众号商城、H5商城、微信小程序商城、抖音小程序商城、字节小程序商城、头条小程序商城、安卓App商城、苹果App商城代码全开源,免费商用。 适用场景:B2C商城、新零售商城、社交电商商城、分销系统商城、小程序商城、商…

Go单元测试及框架使用

Go自带测试框架 单元测试 建议Go 语言推荐测试文件和源代码文件放在一块,测试文件以 _test.go 结尾。函数名必须以 Test 开头,后面一般跟待测试的函数名参数为 t *testing.T 简单测试用例定义如下: func TestXXXX(t *testing.T) {// ...}…

城市NOA转向BEV,头部Tier 1如何笑傲江湖?

主讲|蒋沁宏 编辑|Amy 编者注: 本文是HiEV出品的系列直播「硬核拆解BEV」第三期问答环节内容整理。商汤绝影量产行车智能驾驶研发负责人蒋沁宏,与连线嘉宾寒武纪行歌自动驾驶总监李想、宏景智驾高级工程经理柴可宁、主持嘉宾周琳…

SpringBoot 源码分析初始化应用上下文(1)-createApplicationContext

前言:springBoot的版本是 2.2.4.RELEASE 一、入口 /*** Run the Spring application, creating and refreshing a new* {link ApplicationContext}.* param args the application arguments (usually passed from a Java main method)* return a running {link A…

2023最新版Java 面试突击手册开源(涵盖 p5-p8 技术栈)

前言: 本文收集整理了各大厂常见面试题N道,你想要的这里都有内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈,希望大家都能找到适…

【免配置】Qt的mingw使用编译opencv库

【免配置】Qt的mingw_32/64使用编译opencv库 网上在qt中使用mingw编译器配置opencv的时候,通常需要使用cmake编译工具,进行预先编译,步骤比较繁琐,这里推荐一个捷径,直接使用前人编译好的opencv库即可,避免…

软件测试金融项目,在测试的时候一定要避开的一些雷区

软件测试金融项目需要格外谨慎和专注,因为这些项目通常涉及大量的交易、用户隐私和其他敏感信息。以下是一些软件测试金融项目时需要关注的方面: 1. 数据保护 在测试金融项目时,必须确保用户数据和投资信息得到保护。测试人员必须确保测试环…

Flink CDC 实时mysql到mysql

CDC 的全称是 Change Data Capture ,在广义的概念上,只要是能捕获数据变更的技术,我们都可以称之为 CDC 。目前通常描述的 CDC 技术主要面向数据库的变更,是一种用于捕获数据库中数据变更的技术。 mysqlcdc需要mysql开启binlog&a…

TCP报文段结构

TCP报文段结构 源端口号和目的端口号:含义从名字就能看出来。 序号和确认号:这二个字段被 TCP 发送方和接收方用来实现可靠数据传输服务,每个字段都是32比特。 接收窗口:该字段用于流量控制,大小为16比特。 首部长度…

VTK学习之vtkProp

vtkProp。渲染场景中数据的可视表达(Visible Depictions)是由vtkProp的子类负责。 也就是说,数据想要进行可视化显示,需要一个转换过程,这个过程就是转换为vtkProp 这样才能进行渲染展示出来。 而vtkProp子类是vtkA…

一阶电路和二阶电路的时域分析(1)——“电路分析”

小雅兰期末加油冲冲冲!!! 动态电路的方程及其初始条件 动态电路,物理学名词,是指含有储能元件L、C的电路,动态电路方程的阶数通常等于电路中动态元件的个数。 动态电路是指含有储能元件的电路。当动态电路状…

openpnp - 底部相机矫正(subject not found)的原因总结

文章目录 openpnp - 底部相机矫正(subject not found)的原因总结概述问题的由来相机的选择相机焦距的选择相机初始安装距离位置的选择相机安装支柱接触面过大会影响相机模组PCB的安装相机支柱的绝缘问题安装相机模组时的平整度问题相机轴垂直度的问题相机成像时间矫正时的Z轴位…

全球顶尖科学家陈松蹊院士出任百分点数据科学研究院名誉院长

近日,百分点科技正式宣布聘请北京大学数学科学学院、光华管理学院教授,中国科学院院士陈松蹊担任百分点数据科学研究院名誉院长。公司将以此深化布局数据科学领域,助推数字中国建设。 全球顶尖科学家 陈松蹊院士主要从事超高维大数据统计分析…

卷S人的Java岗!全靠这份1000页的面试手册,拿了28K的offer

大家好,最近有不少朋友给鄙人留言,说今年面试实在是太卷了,不知道从何下手! 不论是跳槽涨薪,还是学习提升!先给自己定一个小目标,然后再朝着目标去努力就完事儿了!为了帮大家节约时…

JVM内存结构及程序执行的内存分析过程

一. JVM内存结构 1. JVM的内存结构大概分为 堆(Heap) 线程共享。所有的对象实例以及数组都要在堆上分配。回收器主要管理的对象。 方法区(Method Area) 线程共享。存储类信息、常量、静态变量、即时编译器编译后的代码。 方…

机器学习-12 卷积神经网络简介

卷积神经网络 引言深度学习发展历程深度应用领域深度学习vs传统机器学习深度神经网络vs浅层神经网络深度学习概述 卷积神经网络CNNBP神经网络CNN概述卷积神经网络大致结构卷积神经网络大致过程 局部连接权值共享非线性映射ReLU(Rectified Linear Units)池…

盘点一下架构师主流的画图工具(附地址)

盘点一下架构师主流的画图工具(附地址) 转发我个人微信公众号的内容,后续优先公众号。 一、文章来源 写这篇文章的目的是做个关于常用画图工具的总结。 起源是在架构组时为了降低沟通成本和提高作战效率,我们频繁用图交流&…

13. 精灵动画Sprite和SpriteSequence的基本使用

1. 说明: 在unity二维游戏开发中,有一种精灵类的玩家角色,通过一系列动作的静态图片可以合成该精灵的某一个动作。在QML当中也有一个控件可以实现这种精灵类动画的制作,主要使用到三个控件:Sprite和SpriteSequence和A…

一文解释python中的实例方法,类方法和静态方法作用和区别是啥?该如何使用

我们都知道 ,python类中有三种常见的方法 ,分别是实例方法 ,类方法和静态方法 。那么这几个方法到底有什么作用 ? 它们之间有什么区别 ?该如何使用 ? 带着这些问题 ,下面我们就来了解下这三种方…

windows平台python脚本执行环境搭建笔记

1.python脚本环境下载 这里是原始发布源: https://www.python.org/downloads/release/python-3114/https://www.python.org/downloads/release/python-3114/安装时记得添加进系统path,这样你可以随时调用python环境。 2.扩展模块的安装 step1.找到py…