返回顶部
首页 > 资讯 > 精选 >移动测试开发Mitmproxy工具怎么使用
  • 205
分享到

移动测试开发Mitmproxy工具怎么使用

2023-07-02 11:07:26 205人浏览 薄情痞子
摘要

本文小编为大家详细介绍“移动测试开发Mitmproxy工具怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“移动测试开发Mitmproxy工具怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.前言在

本文小编为大家详细介绍“移动测试开发Mitmproxy工具怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“移动测试开发Mitmproxy工具怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1.前言

在移动商业广告的测试的工作中,经常会需要对广告请求进行捕获和分析,常使用的有两个测试工具:fiddler,Charles,这两个工具都可以对广告请求进行抓包,断点调试,请求替换,构造请求等,但是这两个工具都有一定的局限性。首先,fiddler 只能在 windows 上运行,charles 虽然可以在 Mac,windows 上运行,但是收费。其次,在商业广告请求中经常会对接口协议进行加密处理,使用 fiddler 和 charles 就不容易解决了。最后,商业广告测试中需要对广告请求协议的各种字段进行校验,但业务涉及到多字段修改的情况下,再利用 fiddler 和 charles 逐一校验判断显然很浪费时间。经过调研和实际应用,我们发现 mitmproxy 这个工具非常灵活,它是基于 python 开发的开源工具,提供了 Python api,可以通过载入自定义 python 脚本轻松控制请求和响应。这是其它工具所不能做到的,通过自定义脚本进行二次开发,能够解决商业广告测试过程中所遇到的问题。

2.Mitmproxy 简介

MITM(Man In The Middle Attack)中间人攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为 “中间人”。mitmproxy 就是用于 MITM 的 proxy,用于中间人攻击的代理。首先会向正常的代理一样转发请求,保障服务端与客户端的通信,其次,会适时的查、记录其截获的数据,或篡改数据,引发服务端或客户端特定的行为。

mitmproxy 有两个关联组件。一个是 mitmdump,它是 mitmproxy 的命令行接口,利用它我们可以对接 Python 脚本,用 Python 实现监听后的处理逻辑。另一个是 mitmWEB,它是一个 Web 程序,通过它我们可以清楚观察 mitmproxy 捕获的请求。

3.Mitmproxy 工作原理

mitmproxy 有 5 种代理模式,主要包含:正向代理,透明代理,反向代理,上游代理,socks 代理,在实际使用中经常用到正向代理,mitmproxy 作为正向代理是一个位于客户端和原始服务器 (origin server) 之间的服务器,为了从原始服务器取得内容,客户端向 mitmproxy 代理发送一个请求并指定目标 (原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

我们以 https 请求为例介绍一下 mitmproxy 作为正向代理抓包的过程:

移动测试开发Mitmproxy工具怎么使用

①. 客户端连接到 mitmproxy,并发Http 连接请求。

②. mitmproxy 响应建立了一个 200 的连接

③. 客户端认为它正在与远程服务器通信,并启动 SSL 连接。使用 SNI 来指定它连接到的主机名。

④. mitmproxy 使用客户端指定的 SNI 主机名与服务端建立一个 SSL/TLS 连接。

⑤. 服务器使用匹配的证书进行响应,该证书包含生成拦截证书所需的 CN 和 SAN 值。

⑥. mitmproxy 生成拦截证书,并继续跟客户端 SSL/TLS 握手。

⑦. 客户端通过已建立的 SSL/TLS 连接发送请求。

⑧. mitmproxy 通过步骤 ④ 中启动的 SSL/TLS 连接将请求传递到服务器。

4.实践应用

解决多字段校验效率问题:

商业广告测试中有大量的重复性工作在打点校验上,为了节省测试时间和解决易漏测的问题,我们可以利用 mitmproxy 二次开发,自定义业务相关的校验规则,然后通过捕获请求对协议中的各个字段进行自动化校验,这样既可以提高测试效率,又避免了漏测问题。

以所测广告业务为例,首先建立 addons.py 文件,addons 是个列表,每个元素是一个类实例,这些类,称为一个个 addon,这些类有若干方法,这些方法实现了某些 mitmproxy 提供的事件,mitmproxy 会在某个事件发生时调用对应的方法。如下图所示为 addons 文件内容,其中 SemiNativeCSJAd 则为 addon。

移动测试开发Mitmproxy工具怎么使用

SemiNativeCSJAd 类中实现了 mitmproxy 提供的 request 和 response 事件,当触发该事件的时候,就会调用对应的方法。

移动测试开发Mitmproxy工具怎么使用

其中将所有类型的广告打点中的公共字段校验抽取成公共方法 semiNativeCSJfieldCheck 调用。如下图所示:

移动测试开发Mitmproxy工具怎么使用

通过以上方式,简单且有效的解决了多个字段校验问题。

解决商业广告中加解密问题:

商业广告有不同的渲染形态,例如:激励视频类,模板类,在实际测试过程中,需要测试人员 mock 不同的广告进行测试,不仅如此,还会遇到需要对广告进行加解密的情况,那么具体应该怎么解决呢?以所测的广告业务为例需要做以下几个步骤:

①. mitmproxy 拦截客户端发起的请求并获取某字段

②. 利用 RSA 算法根据请求的某字段解密获取到秘钥

③. 利用 AES 算法和 ② 步骤的秘钥,对本地广告内容进行加密

④. mitmproxy 将加密的广告返回给客户端

如下图是实现的代码,此 mockMaxFile 函数还可以根据入参传入不同广告文件即可实现不同广告的 mock。

移动测试开发Mitmproxy工具怎么使用

读到这里,这篇“移动测试开发Mitmproxy工具怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: 移动测试开发Mitmproxy工具怎么使用

本文链接: https://lsjlt.com/news/341589.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 移动测试开发Mitmproxy工具怎么使用
    本文小编为大家详细介绍“移动测试开发Mitmproxy工具怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“移动测试开发Mitmproxy工具怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.前言在...
    99+
    2023-07-02
  • 移动测试开发Mitmproxy用于测试抓包神器详解
    目录1.前言2.Mitmproxy 简介3.Mitmproxy 工作原理4.实践应用5.总结1.前言 在移动商业广告的测试的工作中,经常会需要对广告请求进行捕获和分析,常使用的有两个...
    99+
    2024-04-02
  • 如何使用开源测试工具RunnerGo做自动化测试
    以下是使用开源测试工具RunnerGo进行自动化测试的步骤:1. 安装RunnerGo:首先,需要从RunnerGo的官方网站(ht...
    99+
    2023-09-21
    RunnerGo
  • 自动化测试工具开发流程是什么
    自动化测试工具开发流程通常包括以下几个步骤:1.需求分析:确定自动化测试工具的目标和功能,明确需求。2.设计架构:根据需求设计自动化...
    99+
    2023-06-07
    自动化测试工具开发
  • 怎么使用IOS自动化测试工具UIAutomation
    这篇文章给大家分享的是有关怎么使用IOS自动化测试工具UIAutomation的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。xcode中自带的Instuments工具可以用来进行APP的自动化测试, 以及用于进行...
    99+
    2023-06-14
  • 怎么测试Python开发工具pipenv的新版本
    本篇内容主要讲解“怎么测试Python开发工具pipenv的新版本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么测试Python开发工具pipenv的新版本”吧!pipenv 是一...
    99+
    2023-06-16
  • ab压力测试工具怎么使用
    本篇内容主要讲解“ab压力测试工具怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ab压力测试工具怎么使用”吧!一、ab的原理ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时...
    99+
    2023-06-28
  • PHP 开发移动应用的开源工具和库
    php 开发人员可以使用多种开源工具和库构建移动应用程序,包括 cordova、phonegap、ionic framework 和 react native expo。这些工具使 ph...
    99+
    2024-05-06
    php 移动开发 css 移动应用程序
  • Python开发建议:掌握测试驱动开发的方法和工具
    Python是一门功能强大的编程语言,被广泛用于各类软件开发项目中。作为一个Python开发者,如何能够提高开发效率和代码质量,成为一个合格的Python开发者,是我们需要思考的问题。在Python开发中,测试驱动开发(Test-Drive...
    99+
    2023-11-22
    测试驱动开发(TDD) Python开发 方法和工具
  • pythonAirtest自动化测试工具的的使用
    目录Airtest的官网介绍项目构成如何上手?一、安装二、使用三、在本地环境中使用及遇到的问题1.使用"pip install airtest" 进行安装2.ID...
    99+
    2024-04-02
  • Android测试工具-MONKEY使用
    使用monkey测试工具前,需先安装adb命令 MAC下ADB安装 下载:https://www.androiddevtools.cn/inde...
    99+
    2022-06-06
    android测试工具 工具 Android
  • python中Airtest自动化测试工具怎么用
    小编给大家分享一下python中Airtest自动化测试工具怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Airtest的官网介绍项目构成Airtest:是...
    99+
    2023-06-29
  • 【星云测试】开发者测试-采用精准测试工具对Spring Boot应用进行测试
    简介:本文主要介绍把现今主流的springboot框架项目和精准测试工具进行结合和应用,通过精准测试的数据穿透、数据采集、测试用例与代码的双向追溯、数据分析等一系列精准测试的特有功能,达到对项目质量的保证。 本次环境搭建分为基础环...
    99+
    2023-06-02
  • IO测试工具fio怎么用
    IO测试工具fio怎么用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。fio工具安装及使用https://www.cnblogs.com/amused/p/11104161...
    99+
    2023-06-05
  • Android性能测试工具SoloX怎么使用
    这篇文章主要介绍“Android性能测试工具SoloX怎么使用”,在日常操作中,相信很多人在Android性能测试工具SoloX怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • 如何使用IOS自动化测试工具UIAutomation
    目录第一部分: 熟悉Instruments的UIAutomation.第二部分: 控件的获取及操作第三部分: 自定义自动化脚本xcode中自带的Instuments工具可以用来进行A...
    99+
    2022-05-30
    IOS UIAutomation 测试工具
  • python自动化测试工具Helium使用示例
    目录前言示例总结前言 Helium工具是对Selenium的封装,将Selenium工具的使用变得更加简单。Selenium虽然好,但是在它的使用过程中元素的提取还是比较复杂的,不论...
    99+
    2024-04-02
  • cypress测试工具如何使用
    本篇内容主要讲解“cypress测试工具如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“cypress测试工具如何使用”吧!一、什么是cypressCypress称自己是下一代的web前端...
    99+
    2023-06-30
  • 开发者测试(4)-采用精准测试工具对dubbo微服务应用进行测试
    简介:本文主要目的是把现今主流的Dubbo框架项目和精准测试进行对接,通过精准测试的数据穿透、数据采集、测试用例与代码的双向追溯、数据分析等一系列精准测试的特有功能达到对项目质量的保证。 本次环境搭建分为基础环境准备、Dubbo环境搭建、精...
    99+
    2023-06-02
  • 服务器性能测试工具怎么使用
    服务器性能测试工具可以帮助测试服务器的性能表现,下面是使用步骤:1. 选择一款适合您的服务器的性能测试工具,例如Apache JMe...
    99+
    2023-06-04
    服务器性能测试工具 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作