全网最详细,Fiddler抓包实战 - 手机APP端https请求(超详细)

news2024/11/17 14:51:20

前言
Fiddler抓取App端请求

准备工作:
将手机和电脑连接到同一路由器(保证两者能够ping通);
如果使用的模拟器则不需要上面的步骤,因为模拟器是共享PC端的网络,两者网络默认就是连通的状态;
查询PC端的IP地址;

 

配置fiddler可以抓取远程端设备请求

打开Tools->Options->Connections,勾选Allow remote computers to connect选项,为了防止PC端的浏览器的请求和App端的请求信息混乱,可以把Fiddler的监听端改下,比如改成:7777(当然,不改也是可以的)。

 

手机端配置代理

进入到手机/模拟器设置,选择WLAN->连接上的WiFi热点名->手指长按,选择修改网络->勾选高级选项,代理选择手动(注意:不同手机的界面和进入的路径存在一些差异)

代理服务器主机名:PC端查询的IP地址
代理服务器端口号:Fiddler中配置的监听端口

 

此时我们只能抓取到http的请求,如果我们需要抓取https请求,还需要做如下配置。

手机端安装Fiddler伪装证书

在手机端浏览器中输入http://192.168.1.222:7777 其中192.168.1.222为PC端的IP地址,点击最下方链接即可下载Fiddler证书
 

 下载完打开,会提示为证书命名(随便给一个名字即可)

 如果是第一次安装证书,系统会提示设置PIN码(为了安全),按照提示一步一步操作即可

 最后安装结束,我们可以在设置->安全->信任的凭据->用户 中找到我们安装的证书(注意:不同手机的界面和进入的路径存在一些差异)

 打开App(注意:如果之前有启动,需要从后台清理掉再重新启动),以"贝壳找房"为例,https请求抓取成功

 

可能遇到的问题

1、证书导出失败,出现如下提示:The root certificate could not be located

  解决方案:
在开始->运行输入:certmgr.msc打开证书管理
点击操作->查找证书

  输入fiddler,进行查找,将查找出来的所有证书进行删除:

 

再重启Fiddler,重新导出证书

2、证书导出失败,出现如下提示:Unable to configure Windows to Trust the Fiddler Root…

 解决方案:
找到fiddler->工具栏tools->options,再选择HTTPS,点击CertEnroll engine,选择MakeCert即可点击OK保存,最后切记重启fiddler!!!


最后小编为大家整理了一套最新的软件测试系统学习教程,包括测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等

通过大数据总结发现,其实软件测试岗的面试都是差不多的。常问的有下面这几块知识点:

下面展示部分截图,文末附免费下载方式。

测试全栈全网首发

一、测试理论

什么是软件测试?

  • 为了发现程序中的错误而执行程序的过程

软件测试的目标

  • 发现尽可能多的错误
    测试是一个为了寻找错误而运行程序的过程。
    一个好的测试案例是指很可能找到迄今为止尚未发现的错误的用例。
    一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。

怎么编写案例?

  • 案例的编写与测试阶段的定义有很大的关系。系统测试和 unit 测试的案例可能不同。总体而言测试案例根据系统的需求而定。

二、Linux 基础

Linux 中,一般怎么隐藏文件?

  • 文件名以一个.开头

在 Linux 系统中,一个文件的访问权限是 755,其含义是什么?

  • 755 表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。

在 Linux 系统中,一个文件的访问权限是 755,其含义是什么?

  • 755 表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。

三、MySQL 基础

什么是数据库?

  • 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库

简述什么是存储过程和触发器?

  • 存储过程:是数据库中的一个对象,Transact-SQL 语句的预编译集合,这些语句在一个名称下存储并作为一个单元进行处理。(可以理解为 C 语言中的函数,有参数、返回值等函数特性)

    触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。

Mysql 数据库中怎么实现分页?

  • select * from table limit (start-1)*limit,limit;其中 start 是页码,limit 是每页显示的条数。

四、Web 测试

如何测试购买下单和退货流程

  • 产品经理设计了单品优惠,组合优惠,订单优惠,优惠券优惠(优惠券优惠包含通用券,定向券,满减券,折扣券)和礼品卡,其中礼品卡上需要单独购买的。请问如何测试购买下单和退货流程,需要注意什么?(包含数据存储)

nginx,tomcat,apache 都是什么?

  • Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器。

    Apache HTTP Server 是一个模块化的服务器,源于 NCSAhttpd 服务器Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,是开发和调试JSP 程序的首选。

五、接口测试

什么是接口

  • 接口是指外部系统与系统之间以及内部各子系统之间的交互点。
    包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口、同级接口。

下个接口请求参数依赖上个接口的返回数据

  • 这个很容易,不同的接口封装成不同的函数或方法,需要的数据 return 出来,用一个中间变量 a去接受,后面的接口传 a 就可以了

接口测试中依赖登录状态的接口如何测试?

  • 依赖登最状态的接口,本质上是在每次发送请求时需要带上存储有账户有效信息的 Session 或Cookie 才能发送成功,在构建 POST 请求时添加必要的 Session 或 Cookie

六、App 测试

在查看 logcat 命令日志时候怎么内容保存到本地文件?

  • 输出重定向:logcat >> log_file_name

Appium 都有哪些启动方式

  • 1.客户端启动

  • 2.命令行启动

//*[contains(@text,”登录”)]”是什么意思

  • 定位第一个元素 text 属性包含登录的元素

七、Python 基础

字符串反序输出?

  • print(a_str[::-1])

判断回文?

  • astr[::-1] == a_str

简述你对 input()函数的理解?

  • 在 Python3 中,input()获取用户输入,不论用户输入的是什么,获取到的都是字符串类型的。在 Python2中有 raw_input()和 input(), raw_input()和 Python3 中的input()作用是一样的, input()输入的是什么数据类型的,获取到的就是什么数据类型的。

八、Selenium 相关

什么是 Selenium?

  • Selenium 就是一套专门用于自动化 Web 浏览器的工具。而已!你用这个东西来做什么完全取决于你。主要是用于自动化 Web 应用程序进行测试,但肯定不仅限于此。无聊的基于 Web 的管理任务也可以(也应该!)也是自动化的。

    Selenium 有一些最大的浏览器供应商的支持,他们已经采取(或正在采取)步骤使 Selenium 成为其浏览器的本地部分。 它也是无数其他浏览器自动化工具,API 和框架的核心技术。

    最新的 Selenium 版本已经是 3.0(2016 年 10 月 13 日正式 release),但是因为是新技术,Selenium3.0的使用范围还不太广泛。变动的范围也不是很大,主要是更倾向于 Webdriver,而更多的摒弃了 RC。

什么是 elenium IDE?

  • Selenium IDE 是 Selenium 脚本的集成开发环境。 它被实现为 Firefox 扩展(插件),并允许您记录,编辑和调试测试。

webdriver 如何开启和退出一个浏览器?

  • 开启:dr = webdriver.浏览器类型() 关闭:dr.quit()

九、性能测试

你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?

  • 性能测试工作的目的是检查系统是否满足在需求说明书中规定的性能,性能测试常常需要和强度测试结合起来,并常常要求同时进行软件和硬件的检测。

    性能测试主要的关注对象是响应时间,吞吐量,占用内存大小(辅助存储区),处理精度等。

简述什么是值传递,什么是地址传递,两者区别是什么?

  • 值传递主调函数传递给被调函数的是值的拷贝,不是原值;地址传递主调函数传递给被调函数的是值的地址。区别是值传递被调函数中的操作不改变主调函数的值,而地址传递则不同。

LoadRunner 分哪三部分?

  • 用户动作设计;

  • 场景设计;

  • 测试数据分析;

十、LordRunner 相关

LoadRunner 分哪三部分?

  • 用户动作设计;

  • 场景设计;

  • 测试数据分析;

简述 LoadRunner 的工作原理?

  • Loadrunner 会自动监控指定的 URL 或应用程序所发出的请求及服务器返回的响应,它做为一个第三方(Agent)监视客户端与服务器端的所有对话,然后把这些对话记录下来,生成脚本,再次运行时模拟客户端发出的请求,捕获服务器端的响应。

什么是 LoadRunner 的组件?

  • LoadRunner 的组件有虚拟用户生成器,控制器、代理程序、LoadRunner 的分析器和监控器,LoadRunner在线帮助

十一、逻辑题

在一天的 24 小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?

  • 23 次,因为分针要转 24 圈,时针才能转 1 圈,而分针和时针重合两次之间的间隔显然>1 小时,它们有 23 次重合机会,每次重合中秒针有一次重合机会,所以是 23 次重合时间可以对照手表求出,也可列方程求出。

十二、人力资源

你的测试职业发展是什么?你自认为做测试的优势在哪里?

  • 测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前 3 年累积测试经验,按如何做好测试工程师的要求自己,不断的更新自己改正自己,做好测试任务。

  • 优势在于我对测试坚定不移的信心和热情,虽然经验还不够,但测试需要的基本技能我有信心在工作中得以发挥

好的测试工程师应具备的素质?

  • 沟通能力、移情能力、技术能力、自信心、外交能力、幽默感、很强的记忆力、 耐心、怀疑精神、自我督促、洞察力

请介绍一下你的项目

  • 从几个部分来说,先项目规模,包括项目代码规模,需求规模、用例规模,工作量,进度,质量和成本,然后是整体的测试流程,然后再是角色与职责,接下来是在项目中自己的特色,比如做得最好的是、遇到最大的困难时(如何解决)、最差的是,最后是心得体会。

内容太多,篇幅有限,所有文档、PDF的知识体系以截图形式展示,所有的教程学习PDF这边也只是大致介绍一番,不过可提供全部教程的原件给大家免费下载。

资料获取方式:

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

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

相关文章

【聘】夏日炎炎,高薪IT好岗位给你降温!

微思就业推荐 厦门海翼集团财务有限公司 职位:数字化管理部运维管理岗 6000-12000元/月*18薪 职位描述 负责公司日常办公IT设备、网络及机房服务器、业务系统的管理。 1、负责公司机房、服务器、网络设备规划、建设、管理、巡检;负责建立包括但不…

【Servlet综合项目练习】实现一个简单的博客系统~

目录 🌟一、数据库设计部分 1、建表分析:系统中一共要实现几张表? 2、开始建表 🌟二、大概框架与实现功能 🌟 三、代码实现部分 🌈前言1:工具类的实现(utils包下)…

2023年开放式蓝牙耳机选购指南!南卡/韶音/Cleer/索尼/飞利浦等开放式耳机怎么选!最热的开放式蓝牙耳机大盘点!

前言 大家好,作为专注耳机研究多年的发烧级爱好者,毫不夸张的说我为耳机花的钱比买衣服还多,很多人都在问我开放式耳机到底有没有必要买?答案毫无疑问是有必要!开放式耳机佩戴舒适又安全的特质让它在耳机届风靡&#…

动态SLAM论文(7) — DOT: Dynamic Object Tracking for Visual SLAM

目录 1 Introduction 2 Related work 3 DOT A 系统概述 B. 实例分割 C. 相机和物体跟踪 D. 跟踪质量、异常值和遮挡 E. 目标是否在运动? F. 掩码传播 4 Experimental results 5 Conclusions 摘要 - 本文我们介绍了DOT(Dynamic Object Trackin…

计算机网络实验报告——Wireshark 抓包分析

1. Wireshark软件下载 这里放一个蓝奏云下载链接: https://wwix.lanzoue.com/iEklv11klvje 密码:4g0n 2. Wireshark软件抓包使用 将该软件安装之后,双击打开,首先选择你的过滤器方式,我这里电脑连的是WiFi,就选择了这…

分布式搜索--elasticsearch

一、初识 elasticsearch 1. 了解 ES ① elasticsearch 是一款非常强大的开源 搜索引擎,可以帮助我们从海量数据中 快速找到需要的内容 ② elasticsearch 结合 kibana、Logstash、 Beats,也就是 elastic stack (ELK),被 广泛应用在日志数据分…

【CANoe示例分析】PythonCAPL_Call_Demo

该工程由Vector官方提供,目的是演示Python如何调用CAPL文件里的自定义函数。里面除了CANoe工程文件外,还有python文件和CAPL: 提供了两种CANoe版本的工程文件,选择其中一种打开即可。 首先我们要确定CAPL文件AnalyseFunctions.can在CANoe工程内的什么地方?首先想到的是Si…

Apache Doris 在金融壹账通指标中台的应用实践

本文导读: 金融壹账通作为中国平安集团的联营公司,依托平安集团 30 多年金融行业的丰富经验及自主科研能力,向客户提供“横向一体化、纵向全覆盖”的整合产品,以“技术业务”为独特竞争力,帮助客户提升效率、提升服务…

vuex中的四个map方法的使用

vuex中的四个map方法的使用 vuex里面有四个map方法,他们分别可以针对不同的元素进行不同的代码生成 这四个map方法都是异曲同工,明白了一个基本上都明白了 1 编写案例 现在想要展示一段文本,其中里面两个参数要存在store的state里面&…

怎样优雅地增删查改(二):扩展身份管理模块

文章目录 用户关系管理扩展组织管理功能创建可查询仓储 实现控制器测试接口 身份管理模块(Identity模块)为通用查询接口的按组织架构查询和按户关系查询提供查询依据。 身份管理模块的领域层依赖Volo.Abp.Identity.Domain Abp为我们实现了一套身份管理模…

CentOS 7镜像下载 以及 DVD ISO 和 Minimal ISO 等各版本的区别介绍

1.官网下载 官网下载地址:官网下载链接 点击进入下载页面,随便选择一个下载即可(不推荐,推荐阿里云下载,见下文) 阿里云下载站点(速度非常快推荐) 阿里云下载链接: http…

免费下载!10个3D素材网站推荐

在设计工作中,3D素材可以帮助设计师创建高质量的UI设计,提高设计效率和准确性。本文将为您推荐10个好用的3D素材网站,助力设计师实现高效创作。 1.即时设计资源广场 即时设计资源广场是一个致力于为设计师提供丰富多样的设计资产和灵感的社…

chatgpt 与传统3D建模对比分析

推荐:将NSDT场景编辑器加入你的3D工具链 随着人工智能技术的发展,越来越多的领域正逐渐被AI模型所取代。ChatGPT作为一种自然语言处理技术,越来越为人们所熟悉。最近,一些3D建模领域的专家想知道ChatGPT是否可以取代传统的手动3D建…

ClickHouse主键索引最佳实践

在本文中,我们将深入研究ClickHouse索引。我们将对此进行详细说明和讨论: ClickHouse的索引与传统的关系数据库有何不同ClickHouse是怎样构建和使用主键稀疏索引的ClickHouse索引的最佳实践 您可以选择在自己的机器上执行本文给出的所有Clickhouse SQL…

C++之Clang属性大全(一百五十一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

NC65自由报表参数设置后,报表发布成节点后,点击查询,在查询框输入条件后,参数值没有拼接到sql中的解决方法

NC65自由报表参数设置后,报表发布成节点后,点击查询,在查询框输入条件后,参数值没有拼接到sql中的解决方法 在语义分析模型中把sql语句放进去,把字段和查询查询设置好 语义模型的sql使用了parameter把参数输入 sel…

eNSP-OSPF组播拓展复杂区域连接

OSPF动态路由 文章目录 OSPF动态路由一、题目要求二、题目分析三、拓扑结构四、基础配置五、测试验证 一、题目要求 1 、 使用172.16.0.0.0/16网段进行子网划分 2 、 用OSPF协议达到全网可达 3 、 保证所有设备均具备最少的 LSDB 以及路由表 二、题目分析 1.网段划分 5个O…

将OxyPlot封装成用户控件后在WPF中的应用

1、文件架构 2、加载依赖项 Newtonsoft.Json OxyPlot.Wpf 3、NotifyBase.cs namespace Accurate.Common {public class NotifyBase : INotifyPropertyChanged{public event PropertyChangedEventHandler? PropertyChanged;public void DoNotify([CallerMemberName] string p…

【深度学习】日常笔记10

loss_fn nn.MSELoss(reductionnone)这行代码,在这个上下文中,loss_fn实际上是一个损失函数对象而不是返回的具体值。 使用nn.MSELoss(reductionnone)创建的loss_fn是一个均方误差损失函数对象,而不是计算后的结果。要计算具体的损失值&…

(02)Cartographer源码无死角解析-(79) ROS服务→子图压缩与服务发送

讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/127350885 文…