摘要: 背景 上一篇介绍了adb采集流量的方案和采集验证过程,这一篇记录一下具体的实现方案:python + adb 上一篇传送门 -> https://www.cnblogs.com/alisleepy/p/18567796 实现技术 1、python 2、adb 具体编码 # 方法1:获取进程PID # 阅读全文
posted @ 2024-11-25 16:00 alisleepy 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 【测试】要做的事 python基础 基本数据类型 每种数据类型特点,用法 简单算法 多进程,具体用法 测试基础 测试知识点 测试用例编写,几种方法 服务端测试 服务端测试,关注哪些指标 服务端性能测试:JMeter、influxdb 接口自动化:pytest 客户端测试 客户端测试,关注哪些指标 客户端端性能测试:安 阅读全文
posted @ 2024-06-22 18:13 alisleepy 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 【python】记录一次python发送json数据到go服务端,服务端解析失败问题 背景:在做性能测试时,python把采集到的性能数据通过post回传到服务端,服务端用go实现,服务端是将接收的json通过json.Unmarshal反序列化为对应的结构体,但在实现时一直提示数据类型错误的问题 阅读全文
posted @ 2024-04-26 16:11 alisleepy 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 锁 互斥锁 解释:互斥锁,保证同一时刻只有 1 个 goroutine 访问共享资源,比如多个协程同时修改同一个文件,同一时刻只能同一个协程进行修改 使用方法 // 定义一个互斥锁 // var 变量名 互斥锁类型 var guardMutex sync.Mutex //上锁 guardMutex. 阅读全文
posted @ 2024-04-10 00:43 alisleepy 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 通道:channel 名词:在 goroutine 中通信的管道 注意:任何时候,同一时刻只能有一个 goroutine 访问通道进行发送和获取数据 通道的顺序:遵循先入先出的规则 通道的定义 // 定义一个通道 var 变量名 chan 数据类型 // 比如: var intCh chan int 阅读全文
posted @ 2024-04-08 23:36 alisleepy 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 【go】gorm中去掉默认表名后的s复数形式 背景 使用gorm时,查询数据时mysql报错,显示表名不存在,仔细查看,报错的表名中增加了s,比如实际数据库表名是:ali_user,报错信息中显示表 ali_users 不存在 原因 gorm默认使用结构体的复数形式作为表名 比如: # 表结构体定义 阅读全文
posted @ 2024-03-25 11:08 alisleepy 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 一个go的map相关的panic错误 背景:在获取多个数据时,从数据库取到多条数据,需要把多条数据返回给前端,定义一个res返回值,为map[string]any类型,在赋值后运行发生 panic:assignment to entry in nil map 原因:在声明map类型的变量后,直接进行 阅读全文
posted @ 2024-03-06 17:09 alisleepy 阅读(200) 评论(0) 推荐(0) 编辑
摘要: python如何将自定义目录添加到sys.path中,如何将自定义目录从sys.path中删除 背景:在python脚本中,经常需要将自定义的包导入当前脚本,但该包并非pip安装,不在sys.path中,无法直接导入,所以需要临时导入自定义包;另外有时候将自定义的包永久写入了sys.path后,但实 阅读全文
posted @ 2024-02-26 10:13 alisleepy 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 解决python项目中循环依赖问题-动态引入 背景:在做客户端性能测试框架过程中需要从统一入口去调用case,统一入口文件中存在公有方法,于是导致A->B->A的循环引入问题 解决:动态引入需要的包 # 在具体的方法中引入包,不在文件开始的地方import 阅读全文
posted @ 2023-05-08 09:44 alisleepy 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 开源项目地址:https://github.com/openatx/uiautomator2 介绍: uiautomator2是做安卓自动化框架,内部封装了一系列的操作安卓app的方法 原理: python端: 运行脚本,并向移动设备发送HTTP请求 移动设备:移动设备上运行了封装了uiautoma 阅读全文
posted @ 2023-01-16 23:00 alisleepy 阅读(253) 评论(0) 推荐(0) 编辑
摘要: ###gin框架中结合cron实现定时任务执行 背景:一个hr管理系统中,需要每日定时处理员工离职操作,需要每天定时执行删除账号等操作,在这使用定时任务比较方便,比如每天晚21点执行 实现方式如下: 创建定时任务 # 新建Console包,统一管理定时任务 package Console impor 阅读全文
posted @ 2023-01-08 14:03 alisleepy 阅读(1774) 评论(0) 推荐(0) 编辑
摘要: 参考地址:https://www.jianshu.com/p/38f48390c538 官方文档:https://github.com/openatx/uiautomator2 阅读全文
posted @ 2022-11-04 20:12 alisleepy 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 背景:前一节搭建jenkins并创建了job任务后,用户可以在jenkins平台手动点击构建来执行pytest自动化任务,想实现一个从web界面去触发构建jenkins中的job任务,在这选择使用php来调用jenkins-api去触发构建 安装php-jenkins-api包 # composer 阅读全文
posted @ 2022-10-22 01:41 alisleepy 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 背景:jenkins + pytest + allure,产出自动化测试结果 步骤如下: 一、mac安装jenkins 1. 方法一:(不推荐,跳过) 安装tomcat 下载jenkins并放到tomcat的www目录 2. 方法二:brew安装(推荐,简单) # 安装命令: brew instal 阅读全文
posted @ 2022-10-15 18:40 alisleepy 阅读(476) 评论(0) 推荐(0) 编辑
摘要: mac升级后,php@7.3环境损坏,提示icu4相关错误解决办法 背景:mac电脑在一次升级后,php环境损坏导致php无法使用,提示如下信息: 具体原因:电脑升级后brew损坏,重新执行过brew相关的升级,包括所有软件包,导致icu4软件升级到最新的71.1版本,php@7.3不可用,和icu 阅读全文
posted @ 2022-10-15 16:08 alisleepy 阅读(967) 评论(0) 推荐(0) 编辑
摘要: php优化 - 防止跨域攻击 解决方案: 验证 HTTP Referer 字段 服务端生成token,下发到客户端,客户端提交后并进行验证 http的header头自定义属性,每次验证header头中的自定义的属性值 阅读全文
posted @ 2022-08-23 01:50 alisleepy 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 协议 - tcp和udp的区别 TCP/IP协议: 是一个协议簇。里面包括很多协议的,UDP只是其中的一个, 之所以命名为TCP/IP协议,因为TCP、IP协议是两个很重要的协议,就用他两命名了。 TCP协议: 可靠的面向连接的协议,收发数据前必须要和对方建立可靠连接 三次握手:建立连接时执行: 第 阅读全文
posted @ 2022-08-23 01:39 alisleepy 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 数据库 - db和redis数据一致性问题 直接说解决办法: 查询数据操作: 查询缓存,如果命中,直接返回;如果没有命中,查询数据库,再写入缓存 更新数据操作: 直接更新db数据库 然后删除缓存 删除数据操作: 先删除数据库 再删除缓存(设置超时,保证后期缓存肯定会消失) 阅读全文
posted @ 2022-08-23 01:22 alisleepy 阅读(34) 评论(0) 推荐(0) 编辑
摘要: CGI:通信网关协议 CGI协议:动态语言的代码文件需要对应的语言解释器才能被服务器识别,CGI协议就是用来使得解释器与服务器之间互相通信 请求链路: 1、客户端输入ur 2、解析到服务器IP 3、请求发送到Web服务器(nginx) 4、Nginx收到请求,通过fast-cgi协议,将请求数据发送 阅读全文
posted @ 2022-08-21 23:06 alisleepy 阅读(859) 评论(0) 推荐(0) 编辑
摘要: 几种合并数组方法如下: 使用+号合并数组结果: 键名相同时,前边的键值覆盖后边的键值 array_merge()方法: 键名相同时,后边的键值覆盖前边的键值 array_merge_recursive()方法: 键名相同时,相同键名的键值组成一个新的数组,最后结果就是二维数组 array_combi 阅读全文
posted @ 2022-08-21 18:27 alisleepy 阅读(4842) 评论(0) 推荐(0) 编辑
摘要: 定时任务-crontab简单用法 crotab定时任务: 在服务器上设置定时器,来执行特定的任务脚本,比如php XXX或者 python XXX,或者 go run *** crontab基本用法: - crontab时间设置: # 5个时间表示:分别为以下 * * * *:表示:分、时、日、月、 阅读全文
posted @ 2022-08-21 01:11 alisleepy 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 通过supervisor管理laravel队列任务守护进程 背景:laravel队列,在调试使用时可以使用php artisan queue:work来启用队列,但是实际项目部署后,需要通过守护进程一直启动队列,在这使用 supervisor 来管理laravel队列守护进程,并且可以自动重启队列 阅读全文
posted @ 2022-08-20 18:35 alisleepy 阅读(782) 评论(0) 推荐(0) 编辑
摘要: go基础 - WaitGroup用法 package main import ( "fmt" "sync" "time" ) /** * Created by Goland * User: wkk alisleepy@hotmail.com * Time: 2022/8/15 - 23:33 * D 阅读全文
posted @ 2022-08-16 00:03 alisleepy 阅读(39) 评论(0) 推荐(0) 编辑
摘要: docker基础命令 - 镜像/容器 docker version:查看版本 docker info:查看docker系统信息,包括镜像和容器数量 docker —help:查看帮助命令 镜像命令: docker images:查看镜像列表 docker images -a:查看所有 docker 阅读全文
posted @ 2022-08-06 22:58 alisleepy 阅读(78) 评论(0) 推荐(0) 编辑
摘要: go学习 - 字符串翻转 代码如下,比较low,但能实现: package go_test_test import ( "fmt" "testing" ) /** * Created by Goland * User: wkk alisleepy@hotmail.com * Time: 2022/8 阅读全文
posted @ 2022-08-05 01:01 alisleepy 阅读(309) 评论(0) 推荐(0) 编辑