DebugTools——Android网络抓包工具升级与Jenkins智能控制开关

前言

  • 你的测试团队是否和你抱怨,网络抓包工具不好用,Https抓不到,降低测试效率

  • 你:测试环境用http不就好了,测试:那线上呢?你:那用下面方式

    • 使用抓包工具,导出证书
    • 手机端安装证书
    • 设置系统代理

    测试:那你教我~

  • 之前我写过一篇文章:DebugTools------一个设计开发者支撑工具库中曾提到过关于网络抓包,但是得到反馈说全部都堆在一起了,不太好用,所以这次做了一次升级

  • 升级后效果如下

DebugTools功能

  1. 支持查看最新接口前100条数据
  2. 支持正序和倒序排序
  3. 可查看每个接口的Header,请求参数与返回结果
  4. 支持分享给开发

How To

  • Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the end of repositories:
rust 复制代码
	allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}
  • Step 2. Add the dependency
arduino 复制代码
	dependencies {
	       implementation "com.github.Peakmain:DebugTools:+"
	}

如何使用

一、首先在okHttp中添加拦截器

java 复制代码
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.addInterceptor(new com.peakmain.debug.log.HttpLoggingInterceptor());

二、显示网络抓包工具页面

kotlin 复制代码
findViewById<TextView>(R.id.tv_name).setOnClickListener {
    val clazz = Class.forName("com.peakmain.debug.DebugToolDialogFragment")
    val target = clazz.getConstructor().newInstance() as DebugToolDialogFragment
    target.show(supportFragmentManager, "debug_tool")
}

三、所有Activity显示悬浮按钮点击显示网络抓包工具

  • 可以使用我的另一个第三方库:github.com/Peakmain/Ba... 的SuspensionView
  • demo代码如下,在自己的基本Activity中调用下方代码即可
kotlin 复制代码
fun addSuspensionView(activity: AppCompatActivity) {
    val suspensionView = SuspensionView(
        activity, com.atour.atourlife.R.drawable.ui_ic_suspension_setting,
        56f, 60f, 20f, null, 0
    )
    activity.addContentView(
        suspensionView,
        FrameLayout.LayoutParams(
            FrameLayout.LayoutParams.MATCH_PARENT,
            FrameLayout.LayoutParams.MATCH_PARENT
        )
    )
    suspensionView.setSuspensionViewClick {
        var clazz: Class<*>? = null
        try {
            clazz = Class.forName("com.peakmain.debug.DebugToolDialogFragment")
            val target: DebugToolDialogFragment =
                clazz.getConstructor().newInstance() as DebugToolDialogFragment
            target.show(activity.getSupportFragmentManager(), "debug_tool")
        } catch (e: Exception) {
            throw RuntimeException(e)
        }
    }
}

Jenkins智能控制开关

  1. Android在项目的build.gradle(一般都是app/build.gradle),利用project.property获取属性,比如我这里属性名是IS_LOG_CONSONLE_ENABLE
ini 复制代码
def releaseLogConsoleEnable = project.property('IS_LOG_CONSONLE_ENABLE')
  1. buildTypes中通过buildConfigField方法,将属性添加BuildConfig
arduino 复制代码
buildTypes {
    release {
        buildConfigField "boolean", "releaseLogConsoleEnable", releaseLogConsoleEnable
    }
    debug {
        buildConfigField "boolean", "releaseLogConsoleEnable", releaseLogConsoleEnable

    }
}
  1. 显示开关按钮的地方,添加代码开关
scss 复制代码
if(BuildConfig.releaseLogConsoleEnable) {
    addSuspensionView(this);
}

至此Android相关代码配置完成,接下来是Jenkins 4. Jenkins添加选项设置属性为IS_LOG_CONSONLE_ENABLE

  1. Jenkins gradle配置代码-PIS_LOG_CONSONLE_ENABLE=$IS_LOG_CONSONLE_ENABLE
bash 复制代码
./gradlew -Dgradle.user.home=$GRADLE_HOME clean assemble$buildType -b ${WORKSPACE}/app/build.gradle -PIS_LOG_CONSONLE_ENABLE=$IS_LOG_CONSONLE_ENABLE

最后

  • 上述便是《Android网络抓包工具升级与Jenkins智能控制开关》的全部内容,大家如果有什么问题,可以在下方留言哦
  • 如果你觉得文章和项目对你有点帮助,欢迎点赞来踩哦,你的star是我的动力
相关推荐
IT界的老黄牛6 分钟前
Jenkins 监控一条龙:接入、看板 9964、11 条告警规则直接抄走
jenkins·grafana·prometheus·监控·ci-cd·告警规则
aqi002 小时前
鸿蒙版本的JSBridge兼容与安卓配套的H5啦
android·华为·harmonyos·鸿蒙·移动应用
事圆则缓3 小时前
MVVM 的理解与设计
android·android jetpack
小袁拒绝摆烂3 小时前
Jenkins部署经验
运维·jenkins
码农阿豪4 小时前
我把 OpenClaw 装进旧安卓手机后,又折腾了 3 天:飞书、ADB、SSH 全部打通
android·智能手机·飞书
有什么事5 小时前
把安卓搬上云端:云手机系统改造与内核优化拆解
android·智能手机
方白羽6 小时前
性能分析:Android Studio Profiler
android·性能优化·app
没文化的阿浩6 小时前
【MySQL】用户管理
android·mysql·adb
FlightYe7 小时前
音视频修炼之基础理论(五):AAC格式与解析
android·linux·c++·音视频·aac
法欧特斯卡雷特8 小时前
Kotlin 2.4.20 现已发布,新特性多不多?
android·开源·全栈