自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 socket通信代码

【代码】socket通信代码。

2024-06-24 15:59:01 64

原创 自动化技术-图像识别

【代码】自动化技术-图像识别。

2024-05-28 20:33:20 479

原创 监控治理/降噪/优化

避免瞬报: 防抖策略:除了core dump等特殊监控外,建议设置为连续三次满足条件再报警 报警延时:采集周期 * 连续满足条件的次数 <= 3min,适用于大部分服务 合理阈值:通过定期更新来适配,统计不同阈值,在7d内异常时间段的占比,可以得出一个正常情况下的合理阈值,同时也可以参考其他业务线同类指标阈值的设置情况 ,cpu.busy.avg不适用(超过80%,系统响应时间会增加,导致服务处理耗时增加); 报警回调:自动化处理重复性报警 如磁盘清理:因为某些确定性的原因,集群的磁盘

2024-05-28 15:12:11 193

原创 服务端压测

四、压测标准:参考阿里。

2024-04-17 15:28:58 438

原创 常见code review问题

空值:值为null导致空指针异常,参数字符串含有前导或后缀空格没有Trim导致查询为空,建议添加空值检测,在参数入口统一做trim 未捕获的异常:调用API接口、库函数或系统服务时,一定要添加防护,做防御式编程,要么在当前方法捕获异常并返回合适的空值或空对象,要么抛给高层处理 低性能: 循环或逐个调用单个接口获取数据或访问数据库:建议提供批量接口或批量处理并发获取数据 重复创建几乎完全相同的对象:将可复用对象抽离出循环,一次创建多次使用 数据库访问、网络调用等服务未处理超时的情况:设置合理的超

2024-01-30 16:34:01 341

原创 安卓、ios系统详解

安卓系统架构:从上至下,依次是应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层 应用层(system app):系统内置的应用程序及非系统级的应用程序都属于应用层,负责与用于进行交互,一般都用java或者kotlin来开发 应用框架层(java api framework):为应用层提供所需要的Java api,也就是我们常说的安卓系统的Java源码,这一层由Java来开发,所以叫做Java framework,这里主要有View system(视图系统,即基本组件)、内容提供器和各种管

2024-01-17 14:53:15 805

原创 移动端测试体系建设

2、Android端常见静态代码检查工具:Android Lint、FindBugs、QA Plug、godeyes等;ios端常见静态代码检查工具:Clang Static Analyzer、godeyes、infer。1、在编译和运行代码之前,使用静态代码分析工具对代码进行分析,查找潜在问题,如:内存泄露,缓冲区溢出、未初始化的变量等低级语法错误等,常作为流水线卡点自动执行。1、封板回测:P0/P1case,性能、埋点、稳定性、功能、白屏自动检测。2、monkey测试,异常指标关注与解决。

2024-01-12 17:01:13 476

原创 UI自动化稳定性提升

手机异常情况监控:内存不足监控及清理、ATX卸载监控等,异常无法处理时及时下线。手机使用专有WiFi,避免WiFi连接数过高导致网络卡顿或异常。使用背夹,固定温度,避免长时间运行,温度过高down掉。自动化设备存放于角落,无人访问的地方,减少人为影响。电脑使用网线连接,减少网络异常引起的问题。关闭安全键盘、系统自动更新、电池优化等。使用性能好一点的专用电脑运行自动化。磁盘异常告警&定期清理磁盘空间。专用机架,手机固定于机架上。

2024-01-03 17:38:13 503

原创 UI 自动化-krunner

一、krunner原理。

2024-01-03 17:08:41 673

原创 性能检测自动化(含内存泄露检测)

1、安卓端实现:内存泄露检测分为Java内存泄露检测、native内存泄露检测,Java内存泄露输出位标准hprof文件(一种二进制文件),native泄露输出包含泄露的大小和泄露的堆栈。2、ios端实现:开始记录内存---运行业务case----结束内存记录---堆栈内存地址偏移量埋点上报---存到kafka中---监控平台消费kafka消息---根据版本号符号化后的消息(翻译消息的内存地址,得到代码堆栈)----存到数据库中,查询数据库展示于前端页面。三、内存泄露-原因分析。FPS均值(>24帧/S)

2024-01-03 16:08:31 1084

原创 Yoda简介

比起原生的api发送网络请求从而获取服务端页面内容,H5是通过原生app,在打开app的同时(仅资源发生变更的时候请求服务端)就把服务器的页面全部请求过来,当我们打开页面时,直接从本地拿来渲染执行js即可,也就是做了预加载页面的处理,效率提升。3. APP协议:file协议(用于打开本地文件,优点是速度快,直接在webview中调用)、https协议(需要发送网络请求,相对file较慢)、schema协议(用于客户端和前端通讯的协议)2.4 RN:兼顾性能、体验和开发效率,但学习成本高,需要前期投入。

2023-07-24 14:10:24 155

原创 UI自动化常见问题及解决方案

OCR识别失败: 原因:图片类型可能是因为背景发生了变化,文字类别的大概率是因为识别时间早于页面切换时间 解决方案:尽量避开图片识别,文字识别前尽量增加sleep时间 uiautomator2自带问题-WDAStaleElementReferenceError: 原因:wda.exceptions.WDAStaleElementReferenceError: WDARequestError(status=110, value={'error': 'stale element reference

2021-11-01 17:35:41 2004

原创 React Native

Android 7.0以上 抓包https的方案1、下载virtualXposed.apk和justTrustme.apk,安装 virtualXposed.apk 和 justTrustme.apk 模块到Android手机上2、启动virtualXposed,安照提示赋予相应的权限3、在主界面点击菜单按钮,选择"添加应用"4、在添加应用列表选择 "justTrustme" 和 需要抓包测试的App,并安装5、在 virtualXposed 中打开 xpose...

2021-06-23 21:33:12 229 1

原创 SDK性能测试

一、工具运用,安卓:adb,ios:xcode-instrument启动时间:装包后首次启动,热启动、杀进程后的冷启动耗时,遵循2-5-8原则,2s进入第一帧体验最佳,2~5s体验正常,5~8s感觉慢但可以接受,超过8s用户会选择丢弃 检测方法: 获取MainActivity名称:adb shell dumpsys package 包名,找出包含category.LAUNCHER的活动即可发现 查找启动时间adb shell am start -W 包名/com.jd.ad.splash.S

2021-04-02 19:38:53 1362

原创 六、面试题

1、给定一个list,元素都是字符串,查找出现次数最多的前 k 位字符串from collections import Counterdef getStrs(lists,k): if len(lists)<k: return 0 lists1=Counter(lists).most_common(k) lists2=[] for i in range(k): lists2.append(lists1[i][0]) retu

2021-03-13 16:35:02 118

原创 四、sql

case,分为简单case函数和case搜索函数,只返回第一个符合条件的值 case搜索函数:select a,b,c case when 判断条件1 then 成功结果1 else不成功结果1 when 判断条件2 then 成功条件2 …… end as dfrom table :从tale中查找列a,b,c,将符合条件的结果作为第4列d展示出来,李毅中 简单case函数:select a,b,c case c when 条件1 then 成功结果1 else不成功结果1 when...

2021-02-25 20:06:54 183

原创 三、python基础知识

def test(a.b,*args):a,b位置参数,*args将剩下的元素以元祖形式接收 python中不变的数据结构-tuple: list:不要求数据类型相同、元素是有序的、可修改的,用[ ]括起来所有元素: 添加元素:list.appen(元素) 追加到尾部,list.insert(元素插入位置,元素)) 删除元素:list.pop(元素位置)、list.remove(元素) 删除符合条件的第一个元素然后返回删除后的列表、list.pop(元素位置)返回删除的元素/元素位置传空则不删

2021-02-24 10:06:11 258

原创 二、shell命令

1、$# 传递到脚本的参数个数、$* 以一个字符串展示所有传递到脚本的参数、$$ 脚本运行的当前进程ID号、$!后台运行的最后一个进程号、$@ 与$*相同但是加引号返回、$- 现实shell使用的当前选项类似于set、$?返回命令执行状态2、ctrl -c 中断任务、ctrl -z转到后台、ctrl -d给文件加上EOF(相当于exit+回车)、ctrl -\终止所有进程生成core文件、ctrl -s中断控制台输出、ctrl -q恢复控制台输出、ctrl -l清屏3、-d判断目录是否存在、-f判.

2021-02-22 19:59:55 189

原创 一、工具原理类

1、unittest(python自带单元测试框架)1)工作原理:最核心的4部分是TestCase(一个testcase的实例就是一个测试用例)、TestSuite(测试用例集)、TestRunner(运行测试用例的驱动类)、TestFixture(准备及清理工作),整个流程是首先写好TestCase,然后由TestLoader加载TestCase到TestSuite,运行的结果保存在TextTestResult中,整个过程集成在unittest.main模块中2)优点:可扩展性强、插件少二次开发方

2021-02-22 18:39:45 342 1

原创 APP自动化之airtest(二)---ios真机调试

1、下载ios-Tagent:https://github.com/AirtestProject/IOS-Tagent,下载zip包即可2、解压后用xcode打开,并进行认证,开发者证书可请教iOS客户端研发4)用数据线连接iPhone至Mac选择项目,在菜单栏product->Scheme->WebDriverAgentRunner选择设备,在菜单栏product->Destination-> 选择你的真机启动Test,在菜单栏produ...

2020-08-13 20:51:02 851 3

原创 APP自动化之airtest(一)---环境搭建mac版&安卓真机连接

1、安装homebrew:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"2、安装python3.6.8,版本太高会导致airtest安装失败,下载地址:https://www.python.org/downloads/release/python-368/ 添加环境变量,执行open ~/.bash_profile,加入 alias...

2020-08-13 20:45:07 898

原创 跨域问题详解

1、访问其他域名被阻止即为跨域;跨域问题不是跨域,而是跨源(cross-origin)问题。现代浏览器里有一个叫做同源(两个url的协议(protocol)、端口(port)、域名(hosts)完全相同)策略的机制,正是这个机制阻止了资源的跨域访问。2、常见的跨域场景 1)允许通信:同一域名不同文件或路径(http://www.baidu.com/a.js、http://www.baidu.com/b/c.js) 2)不允许通信:同一域名不同端口(http://www.bai...

2020-07-29 19:04:57 84

原创 安卓7.0以上版本https抓包处理

一、背景:fiddler不支持配置host的同时抓包https,此处工具用的whistle,然而安卓7.0以上版本无法安装证书,下面为具体使用功能方法;二、安装whistle 安装Node,下载地址:https://nodejs.org/,默认安装即可: Node安装成功后,执行如下npm命令,配合taobao镜像安装whistle:安装完验证是否安装成功:...

2020-05-13 21:51:58 361

原创 Linux机器提示没有空间的解决方法

首先造成这种情况的可能性有两个:1、磁盘满了,用df -h查看2、inode满了,用df -i查看:本次问题为该情况,查看/var/spool/clientmqueue占用空间情况,由于本次该目录占用inode非常大,故执行cd /var/spool/clientmqueue & ls | xargs rm -f,解决问题...

2020-03-23 17:48:52 2908 2

原创 HTTP接口全链路压测

一、工具介绍 gor:监听服务器上的请求并捕捉HTTP流量,把捕捉的流量保存到文件中,最后到需要压测的机器上下载该文件,进行回放二、监听(可以写个脚本): 1、前置脚本[[ $# -ne 7 ]] && echo "sh $0; please use sh $0 build_vocab IP PASSWORD 80 'Search?=' 10...

2019-10-11 21:17:08 680

原创 node安装成功后,node命令正常,npm命令报错Error: ENOENT: no such file or directory, uv_cwd

ln -s /export/servers/node-v9.9.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm

2019-08-30 18:19:45 9325 3

原创 nginx跨域问题解决方案

set $urls_origin ""; if ($http_origin ~* "^(http|https)://jf.jd.co.th$") { set $urls_origin $http_origin; } if ($http_origin ~* "^(http|https)://qajf...

2019-08-21 16:52:22 600

原创 nginx配置中所遇到的坑

1、配置nginx后,域名访问403,域名后直接加html地址访问404原因:nginx默认读取的html文件是index.html,转发的路径底下没有index.html文件解决方案:将home页复制出来作为index.html2、配置nginx后,发现丢失了cookie原因:nginx与nginx之间传输的时候,丢失了Cookie解决方案:简化nginx,直接用前端机器做n...

2019-04-29 10:48:54 672

原创 Requests----Python视线的简单易用的HTTP库

    基于urllib,采用Apache2 Licensed开源协议的HTTP库,比urllib更简单,节约时间,且完全满足HTTP测试需求。它允许你发送纯天然HTTP/1.1请求,无需手工操作:为url添加字符串,对post数据进行表单编码,keep-alive和连接池的功能是100%自动化,一切源于根植在其内部的urllib3:    1)完全满足如今web的需求:keep-alive和连接...

2018-06-14 16:56:07 283

原创 nginx

1、Keep-Alive:    1)早期每个http请求都需要打开一个tcp socket连接,使用一次后就断开,使用keep-alive,可以解决这个问题,即在一次tcp连接中可以持续发送多份数据而不会断开连接,以减少tcp的连接次数,提高性能(由httpd自动关闭tcp连接,减少TIME_WAIT状态连接)和httpd的吞吐率(更少的系统内核调用和更少的socket的accept和close...

2018-06-14 16:12:14 168

原创 测试之mock数据

一、背景 测试过程中,我们常常会遇到需要mock测试数据的情况:接口未开发完成提前介入测试、由于种种原因无法获得真实账号真实数据去测试,本次mock的是后端A返回数据,展示逻辑是后端B调用后端A接口,将数据传递给前端,在前端展示。二、原理python -m SimpleHTTPServer,搭建一个web服务器,将接口返回的json串存储在这里 ...

2018-05-18 20:32:55 3435

原创 fiddler抓包可以抓到电脑数据抓不到手机上的数据------防火墙问题

1、确保手机与电脑处于同一局域网,网络没问题,手机代理设置无误2、确保fiddler设置没有任何问题3、如果此时还是无法抓包,请打开控制面板----Windows防火墙------允许程序通过Windows防火墙通信,将fiddler全部勾选,点击确定,再次连网...

2018-03-13 14:58:21 5624

原创 五、测试基础知识

一、关于你做过的事情:1、项目简介、角色介绍,你的工作介绍,在项目中担任的角色越重要,干的活涉及面越广,越好2、能画出你所负责测试的系统的架构图3、所负责测试的系统所用的是什么框架,这个框架有什么特点4、测试内容所涉及到的算法,算法的特点二、关于测试的基本技能:1、根据系统特性能够独立定位bug,给开发提供线索,知晓bug产生原因2、HTTP协议协议特点支持客户/服务器模式简单快速:客户向服务器...

2018-02-28 11:22:45 7968 3

原创 接口测试实例操作

环境准备需要配置安装两个软件jdk和jmeterJdk、jmeter环境变量配置右键计算机属性->高级系统设置->高级->环境变量->添加如下的系统变量:1)变量名:【JAVA_HOME】变量值:【D:\Program Files\Java\jdk1.8.0_92】【jdk安装路径】2)变量名:【path】变量值:【\;%JAVA_HOME%\bin;】3)

2018-01-29 16:55:08 743

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除