![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
测试开发之【测试】
测试开发系列测试方向的文章
henry.Woo
微信公众号 【 henryWoo 】
展开
-
Jenkins做持续集成的一次实践
众所周知,我们在敏捷开发模式里一项很重要的工作就是搭建持续集成(CI)环境,将项目源码工程的编译,打包,测试,部署像流水线一样自动化地进行,整个操作过程无须人工介入,从而提高版本部署的质量,提高版本发布的效率,这是因为简单重复的工作人工操作非常容易出错,而机器通常不会如果你负责测试的项目中这一块还是空白,那么这篇文章通过一次实践正好带你入门,让你了解 CI 的基础1. 准备工作我们采用业界最流行的框架 Jenkins 来实现 CI,它可以在 Windows,Mac,多种 Linux 系统上安装,本文是原创 2020-10-28 08:54:45 · 316 阅读 · 0 评论 -
CST 时间格式转 Date
格式化 CST 时间格式,例如:Thu Jan 16 09:47:41 CST 2020DateFormatter dateFormatter = new DateFormatter("EEE MMM dd HH:mm:ss zzz yyyy");Date date = dateFormatter.parse(dateStr, Locale.US);dateFormatter.setPattern("yyyy-MM-dd");String buildDate = dateFormatter.prin原创 2020-09-07 11:16:38 · 2428 阅读 · 0 评论 -
统计 Android 应用的 CPU 和内存
Android 系统基于 Linux 的内核构建起来,因此统计应用消耗的内存和占用的 CPU 时非常方便,本文介绍统计 CPU 和内存的命令,以及实现自动化统计的思路CPU 的统计Linux 提供了非常简单的一个命令 top,可以查看应用的 CPU 和内存占用情况,Android shell 下也可以直接使用它,输入如下命令就能够在窗口中循环输出 CPU 占用靠前的应用进程$ adb she...原创 2020-04-29 21:08:47 · 1044 阅读 · 0 评论 -
Airtest Project - UI 自动化测试神器
Airtest Project 是网易开发的一款跨平台 UI 自动化测试框架( http://airtest.netease.com )。今天阅读该框架的整体介绍和使用说明,总结框架的基本功能和特点如下,对 Android,iOS,3D 游戏等应用的 UI 自动化测试感兴趣的读者请务必看过来跨平台Airtest Project 一大特色是跨平台,支持以下应用的 UI 自动化测试Androi...原创 2020-03-25 21:23:44 · 428 阅读 · 0 评论 -
Android UIAutomator 控件匹配的源码解析
在 Android UI 自动化测试中,Google 提供的 UIAutomator2 库查找控件的 API 使用的是 UiDevice.findObject(BySelector selector) 或者 UiObject2.findObject(BySelector selector),我从后者作为起点(前者的逻辑也是一样的),分析其中的原理这是段入口的代码public UiObject2...原创 2020-04-19 23:43:05 · 346 阅读 · 0 评论 -
如何自动检测界面静止,Android UiAutomator 源码这样解释
本篇跟 Android UiAutomator 自动化测试相关,涉及到 waitForIdle 这个方法。从名字上来看,它的作用是等待空闲,通常用来等待界面上没有变化时使用。但它真的能监测到 idle 状态吗,今天就解读一下它的源码这个方法是从 UiDevice 暴露出来供测试代码调用的,通过查看调用关系,最终实现是在 framework 层的 UiAutomation 中// UiAutom...原创 2020-03-18 20:49:26 · 593 阅读 · 0 评论 -
Selenium WebDriver 快速入门
今天这篇讲的是快速入门 Selenium,通过阅读本文并且跟随操作,读者将能做到以下:搭建本地 Selenium WebDriver 环境了解 Selenium WebDriver,Selenium IDE 和 Grid 区别如果只想知道 WebDriver 环境怎么搭,如何写出一个 Demo,那么可跳过下面的部分,直接看 Selenium WebDriver 环境搭建,但仍建议了解其测...原创 2020-03-15 16:52:59 · 357 阅读 · 0 评论 -
requires INJECT_EVENTS permission
今天用一个洋气点的标题(不就是小学生也能看懂的英文吗),是因为 Android 自动化测试报了个错:Injecting to another application requires INJECT_EVENTS permission。为此我闹了点笑话现在仍然是疫情期间,所以在家远程办公时收到同事发来的问题,于是在网上搜到一个答案竟然是因为 USB 调试没打开呢?毕竟是在排查问题,只能先看看我...原创 2020-03-08 14:27:57 · 4358 阅读 · 2 评论 -
iOS 真机部署 Appium,没那么简单
关于 Appium 在 Android 设备上的环境部署,请参考我之前写的文章《10 分钟 Android 启动 appium》相比于 Android,iOS 真机配置真的是太繁琐了,1 个 10 分钟是不够的,可能要好几十个 10 分钟,大家做好心理准备硬件环境Mac OS X 系统(Windows 系统本身跑不了 iOS 的 Driver,需要依赖 Mac 上的环境)iPhone(...原创 2019-11-27 17:17:01 · 790 阅读 · 4 评论 -
JUnit 单元测试代码,IDEA 一键搞定
会写单元测试代码,不一定成为一名优秀的 Java 程序员,但不会写的话,一定成为不了。以下内容:基于 Windows 端 IDEA 的 Maven 项目,里面涉及到的快捷键在各版本 IDEA 中都适用,可能一些菜单内容会在新版本中发生变化,但操作思想不变,这里基于 2017.1.4 版本一、pom 中添加 JUnit 依赖 <properties> <junit....原创 2019-11-26 17:27:15 · 626 阅读 · 0 评论 -
Android 部署 Appium,竟如此简单
Long long ago,在做 Android UI 自动化测试选型时,接触过 Appium。记得那时需要手动把代理 jar 塞到 Android 设备里,再执行用例,通过 PC 侧的 Server 去通信,去做操作,等等,总之感觉也不是那么好用。今天再次想到 Appium,是要对 iOS 设备进行自动化控制。于是翻了翻官方文档,经过一番猛如虎的操作后,几乎是零成本的就跑起了 Test。于是我...原创 2019-11-12 09:08:08 · 898 阅读 · 0 评论 -
jar 转 dex 自动化部署
最近要定位 Android am 工具的一个点,需要加些东西进去,于是修改了一下 com.android.commands.am.Am 里的东西,当然我可以直接在 Android 编译环境里面编译出来,但这样其实太慢了用 idea 修改并编译,速度更快,需要以下几步实现:把 jar 转为 dex把 dex 替换回 device 里取出的 am.jar把 am.jar 推回 device...原创 2019-08-28 20:05:44 · 606 阅读 · 0 评论 -
Android 自动化测试一个快速截屏的原生 API
今天在浏览 SystemUI 的内容时无意中发现一个截屏服务 TakeScreenshotService,恰好最近在研究 Android 快速截屏的内容,于是迅速找出源码来看了看通过该服务,找到了 com.android.systemui.GlobalScreenshot,里面有一个方法void takeScreenshot(Runnable finisher, boolean statusB...原创 2019-08-15 20:19:24 · 1534 阅读 · 0 评论 -
Android O 中使用 busybox
busybox 中提供的命令行工具非常好用,但在高通版本的 Android O 中被删掉了,这里我们自行 push 进去使用以下是自动导入的 .bat 命令,将其复制粘贴到 txt 中,改后缀为 .bat 即可使用@echo offecho.adb rootadb disable-verityadb rebootecho reboot device, waiting ...a...原创 2019-06-13 16:27:47 · 733 阅读 · 0 评论 -
zip 命令实现批量文件压缩
需求以 Linux 搭建的 ftp 服务器的空间有限,之前大量的 log 文件通过无压缩方式上传,现在需要压缩它们以节省空间。目录结构如下,需要逐个遍历 test 下的所有目录,并将所有目录下的子目录打压缩包,然后删除源文件夹:思考写代码来实现,比如 java利用 Linux 强大的工具集,比如 zip实施这种情况下利用现成工具,减少核心代码出错的机会,也能快速部署。所以选择...原创 2019-06-03 22:28:05 · 2512 阅读 · 0 评论 -
思考 Android 自动化测试的几条路径
从 pc 发起通过 adb 来实现自动化测试。adb 的功能非常强大,比如 调起 app,发广播,操作 Android 的文件系统,修改属性文件,模拟按键等等再掌握一些批处理(Windows 环境)或者 shell 脚本(Mac 或 Linux 环境)的编写,写一个 Android 自动化工具就是手到擒来的事。另外,adb 优于 app 的一点在于权限更大。随着 Android SDK ...原创 2019-06-04 22:50:47 · 113 阅读 · 0 评论 -
自动化测试工具设计中一个重要思想
1.自动化测试工具开发中,有的人擅长使用 Java,有的喜欢用 Python。它俩都是非常优秀的语言。但不可避免的是,当我们在实现一套测试工具时,如果依赖的 SDK 只提供其中一种语言的代码,我们仅仅为了适配 SDK 而重新学习一门不熟悉的语言,时间成本上花费会更大。2.当然,Java 调用 Python 也是有门道的,比如 Jython。典型的例子就是 Android monkeyrunn...原创 2019-06-16 20:37:47 · 354 阅读 · 0 评论 -
Python 通过 cv2 读取多个 USB 摄像头
通过 cv2 可以轻易的拿到摄像头数据。比如以下几步就能打开摄像头显示,并通过 q 键保存图片import cv2capture = cv2.VideoCapture(0)# 打开自带的摄像头if capture.isOpened(): # 以下两步设置显示屏的宽高 capture .set(cv2.CAP_PROP_FRAME_WIDTH, 640) capture...原创 2019-07-01 20:34:00 · 9872 阅读 · 2 评论 -
android 快速截图工具 minicap 之编译与运行
minicap 是什么?minicap 是开源项目 STF 的一个用于快速截图的工具,可用于实时查看屏幕视图,刷新速度可以达到 30-40 FPS由于 SDK 不同,CPU 架构不同,需要根据自己型号的设备自己编译,但是不要怕,编译和操作很简单,但需要点儿执行力准备工作(以下在 windows 64 位机上进行的操作)下载 Android NDK(我使用的版本是经过验证可行的版本)ND...原创 2019-08-05 08:33:25 · 4042 阅读 · 1 评论 -
adb进程是被谁启动的?
背景这两天在排查自动化测试平台中,adb.exe 开启过多的问题。(200个)这是一个很糟糕的表现,当客户端的连接数过多时,会对 Android 的 adbd 带来过多的 socket 连接,进而影响系统性能。开始排查仅仅通过在开启 adb 的位置加 log,并不能取得什么效果。程序里用的是 Runtime.exec 去执行 adb 命令,通过单独执行这样的代码,测试半个小时,未见 adb...原创 2019-07-26 09:04:34 · 1423 阅读 · 0 评论 -
Android monkey 测试工具的完善思路
monkey 的架构大致分为,OptionProcessor,MonkeyEvent,ExceptionCollector,EventGenerator,Executor。基本流程是这样的,根据(测试人员)传入的测试参数设定执行参数,生成相关的测试 Event,发送 Event通过 ExceptionCollector 进行异常监听,当有异常(ANR,Crash)发生时,会记录标志位每个...原创 2019-06-11 20:52:11 · 179 阅读 · 0 评论