自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 用域名可以访问,用 IP 访问返回 503 Service Unavailable

从家里通过公司vpn连接内网后,发现一些日常资源在访问时 dns 无法解析,必须设置为公司 dns 才可以。不过这样设置后访问公网如百度又受到影响(不得不吐槽一下公司的 dns),于是就打算把资源的域名直接改为 IP 去访问通过 ping 拿到域名对应的 IP 后,就把 URL 做了替换,在 Chrome 中测试,却返回了 503 Service Unavailable这是一个服务器错误,说明 IP 是通的,但是服务器没法处理这个请求,但改为域名访问又正常。Google 了一下,可能原因这个 IP 是

2022-02-13 11:07:18 2624

原创 处理 HTTP 服务不能通过本机 IP 请求的问题

今天在调试同事开发的一个 http 服务,在 pc A 上启动以后,发现在另一台 pc B 上无法通过 http://ipA:5000/ 的方式请求,具体报错信息是提示访问被拒绝一般来说,我们会先在 pc A 上测试下,所以我切回 A,并通过 http://127.0.0.1:5000/ 访问,一切正常,那么说明服务启动是没问题的接下来,自然的想到是不是防火墙没关,于是检查了一下,发现关了一部分,那么就把剩下的全都关闭,并切回 B 重试,No,仍然提示访问被拒绝此时,思路还是集中在防火墙上,怀疑是不是

2021-08-17 16:46:45 1115

原创 Jenkins做持续集成的一次实践

众所周知,我们在敏捷开发模式里一项很重要的工作就是搭建持续集成(CI)环境,将项目源码工程的编译,打包,测试,部署像流水线一样自动化地进行,整个操作过程无须人工介入,从而提高版本部署的质量,提高版本发布的效率,这是因为简单重复的工作人工操作非常容易出错,而机器通常不会如果你负责测试的项目中这一块还是空白,那么这篇文章通过一次实践正好带你入门,让你了解 CI 的基础1. 准备工作我们采用业界最流行的框架 Jenkins 来实现 CI,它可以在 Windows,Mac,多种 Linux 系统上安装,本文是

2020-10-28 08:54:45 283

原创 Mac 上使用 zmodem 发送和接收堡垒机文件

背景公司的 CentOS 服务器需要通过堡垒机登录,上传下载文件不能直接使用 scp 的方式操作,于是采用 zmodem 来实现实现首先服务器系统 CentOS 上要安装 zmodem 的实现工具 lrzsz,通过命令(通常情况下是已经安装过的)yum -y install lrzsz本地的 PC 我使用 Mac 电脑,按如下流程进行1,安装 lrzszbrew install lrzsz如果 brew 没有修改过镜像服务器,先按这篇说明进行操作,这样下载速度才不会很慢HomeBrew

2020-10-22 12:01:42 1066 1

原创 Mac 和 Windows 安装 Grafana

Grafana 是什么当我们需要通过数据库中的数据做图表展示,却又不熟悉前端页面如何绘制时,相信 Grafana 将是你的得力助手以下是通过这款工具生成的一些示例这里面完全不需要任何绘图基础,只要会操作数据,比如我们使用 MySQL,那么会写 SQL,就可以实现上面这样的效果并且它支持定时刷新功能,最短几秒就可以将新的数据绘在表中听起来是不是很棒,那么跟着下面的步骤开始安装吧一、在 MacOS 上进行快速安装这里使用 homebrew 包管理器完成安装操作如果想安装指定版本,访问此路径

2020-10-15 08:51:20 226

原创 两步操作,快速变更 Grafana 主题

先上效果图我的版本:V7.1.51,安装 Boom Theme Plugingrafana-cli plugins install yesoreyeram-boomtheme-panelbrew services restart grafana添加新的Dashboardadd new panel,选择面板类型2,github 上找到现成的主题https://github.com/gilbN/theme.park/wiki/GrafanaCSS URL···https://gilbn

2020-09-22 21:46:45 2521 6

原创 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 2315

原创 HomeBrew 镜像加速

Homebrew 是一款 Mac OS 平台下的软件包管理工具。在国内如果用其默认镜像下载资源,速度会非常慢,以下几步简单的配置,将下载源配置为国内镜像,马上就能体验蜗牛变火箭的感受cd "$(brew --repo)"git remote set-url origin https://mirrors.ustc.edu.cn/brew.gitcd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"git remote set-url origi

2020-09-06 09:05:22 316

原创 这样注入 SpringBoot 中的 Bean

上次写了一个 SpringBoot 的 Demo 后,发现它确实简单好用,但是写着写着又忍不住在代码里 new 对象了,到底是怎么回事?原来是搞不清楚如何才能把对象注入到 Spring 的容器中。今天这篇文章就分享几种将组件 Bean 注入的方法通过注解 @Controller,@Service,@Repository,@Component适用场景:用得非常广泛的一种方式,对于有明确含义的类,通常用这种方法来将组件注入到容器比如,@Controller 我们会标注在控制器类上,@Service 会标注

2020-08-30 15:13:10 280

原创 测试开发的 SpringBoot 入门课

在 Java 后端开发的世界里,SpringBoot 是目前最流行的框架之一了,它简单好用,对 Spring 应用做了很多封装和自动配置,让开发一个后台应用变得非常的简单为什么作为测试开发,要学习 SpringBoot 呢?因为高级的测试开发,在面对诸如 xxx 管理平台这样的任务时,不会一点儿后端的技术,是驾驭不了这种需求的当然,Python 也可以开发后台系统,比如 Django,Flask 等我曾经说过,Java 是测试开发必学的语言,除非你并不希望发展得更好。Java 语言有它非常独特的魅力,

2020-08-25 08:42:40 385 1

原创 用 Anaconda 管理你的 Python

写过 Python 的读者都知道,Python 发行的版本不少,有的依赖模块还跟版本关联性很强,换句话说,如果某个 Python 项目是引用了 3.4 版本的模块,用该模块的 3.7 版本的话可能是用不了的,必须切回到对应版本下进行开发如果我们同时在维护多个版本的 Py 项目,那么环境管理将是一件非常困难且繁琐的事自从用上了 Anaconda,一切都变得香起来。今天介绍一下使用 Anaconda 来管理 Python 的环境,讲一些非常常用却很方便的功能,还没有使用的读者不妨现在就来体验一把它的魅力下

2020-06-09 22:27:09 294

原创 测试开发的核心竞争力在哪里

不论是准备踏入测试开发岗位,或者已经做了一段时间,又或者做了好几年的测试开发的读者来说,核心竞争力都是需要关注的一个方面,这决定了这个岗位是否可持续发展,以及如何设定目标去维持自己的竞争力以下,是我的思考:为什么大厂要设测试开发这个岗位?一,大厂对产品质量要求非常高,互联网的用户都是很挑剔的,竞品比我司质量更好这还像话吗~~~二,大厂之间的竞争非常激烈,我司发布一个新功能要一个月才能上线,竞品一周就上线了这还像话吗~~~因此,一个具备将测试效率大幅度提高,并且能够深入到更底层进行测试的群体就应运而

2020-05-24 17:13:51 351

原创 听说你不知道什么是测试开发

有的读者对测试开发是什么还比较陌生,这篇文章来解解惑,回答一下跟测试开发相关的问题测试开发是测试还是开发?测试开发,通常在一些大公司,尤其是互联网公司里才会设置这样的岗位。因为互联网大厂对产品质量要求非常高。质量这个东西,光靠开发是解决不了的,必须同时依靠强大的测试团队互联网企业一大特点就是版本迭代速度快,光靠人工已经无法赶上测试进度,必须依靠机器的自动化测试,同时有的测试用例手工是做不到的,比如高并发,高压力的测试项所以有了测试开发,通常它是一个隶属于测试团队的岗位,专门来开发测试工具,测试平台这

2020-05-09 23:40:15 963

原创 renren-fast 快速开发 Web 管理平台

什么是 renren-fastrenren-fast 是一个 Java 的开源项目,只需要对它进行简单修改,就能够应用到自己的项目中,大大简化开发流程,缩短开发周期renren-fast 是一个前后端分离开发的项目,前端基于 vue,element-ui 构建,以下的内容,就是教大家如何在本机上将这两个项目部署起来,前端登录界面呈现这样的效果部署准备我这里演示,使用的是 Mac 系统,在...

2020-05-05 22:35:09 1677 2

原创 Centos 中使用 Docker

什么是 DockerDocker 是一种虚拟化容器技术,Errr…比如以前我们要装个 Windows 系统,要先找一个系统光盘,通过电脑的 Boot 引导,一步步走安装流程,最后完成系统安装。之后系统就运行起来了,我们还要手动安装一些软件,比如微信,Chrome 浏览器等才能正常使用而有了 Docker 之后,我们像安装软件一样安装它,之后通过 Docker Hub 镜像市场找我们感兴趣的镜...

2020-05-03 11:38:38 341

原创 统计 Android 应用的 CPU 和内存

Android 系统基于 Linux 的内核构建起来,因此统计应用消耗的内存和占用的 CPU 时非常方便,本文介绍统计 CPU 和内存的命令,以及实现自动化统计的思路CPU 的统计Linux 提供了非常简单的一个命令 top,可以查看应用的 CPU 和内存占用情况,Android shell 下也可以直接使用它,输入如下命令就能够在窗口中循环输出 CPU 占用靠前的应用进程$ adb she...

2020-04-29 21:08:47 916

原创 Github 使用搜索的正确姿势

Github (https://github.com/)是全球最大的开源社区,也被称作全球最大的同性交友网站,大部分的程序员都会在上面提交自己的代码,很多优秀的开源作品也会放在上面,比如:springBoot,greenDAO,EventBus 等我们可以利用 Github 的搜索功能,寻找自己感兴趣或者有帮助的开源作品,But,如果我们仍然只是简单的在搜索框里输入譬如 “image”,或者 “...

2020-04-26 08:30:03 643

原创 Android UIAutomator 控件匹配的源码解析

在 Android UI 自动化测试中,Google 提供的 UIAutomator2 库查找控件的 API 使用的是 UiDevice.findObject(BySelector selector) 或者 UiObject2.findObject(BySelector selector),我从后者作为起点(前者的逻辑也是一样的),分析其中的原理这是段入口的代码public UiObject2...

2020-04-19 23:43:05 314

原创 Android App 多进程和多线程

通常情况下,Android APP 运行在一个进程中,所有组件共享进程中的数据。但有时候我们希望某些组件在自己独立的进程中运行,一般情况下 service 会这样用,而 activity,receiver,provider 组件也能做这样的设置Android APP 多进程新建一个 Android application 工程,添加一个 Activity 和一个 Service,将 Servi...

2020-04-15 22:44:57 1025

原创 一文搞定 Linux,Mac,Windows 的 NFS 网络文件共享服务部署

NFS,全称是 Network File System,用于在不同的服务器之间建立文件共享的通道,使得从其他服务器上访问共享目录时,就如同访问服务器自己本地的文件夹一样方便,这在分布式系统上得到广泛的应用。比如, k8s 集群,就会采用 NFS 来实现共享存储在需要开放共享的机器上,启动一个 NFS Server,需要访问共享的机器上,用 NFS Client 挂载共享目录到本地目录上,就能够直...

2020-04-10 10:29:13 8260 4

原创 Android Gradle 的 dependency

Android 默认使用 Gradle 来编译 Project,并且开发了一套支持 Android 编译的 Gradle 插件,Android Plugin for Gradle,使用 Android Studio 新建的默认工程的 build.gradle 文件中就能够看到当前使用的插件版本dependencies { classpath 'com.android.tools.buil...

2020-04-07 08:14:25 872

原创 Python 处理 Excel,就用 xlwings

Python 中的 xlwings 库用来处理 Excel 非常好用,既能支持 xlsx 格式,也能支持 pandas 的 DataFrame,甚至还提供 REST API。用法上也简洁明了,下面说一说一些基本的读和写的操作安装pip install xlwings如果在 conda 上安装的话,其官方的包会滞后,所以采用下面的命令会接近于 pip 的发布conda install -c...

2020-04-03 00:00:08 737

原创 github 的 ssh 免密码登录,及 ssh 常用操作

通常在配置 git 代码托管服务器的时候,比如 github, gitee, gitlab 等,添加一个 ssh key 就能免密访问,这里的配置方法如下生成 ssh key如果不确定是否已经生成过 ssh key,查看 .ssh 目录Mac OS$ ls ~/.sshid_rsa id_rsa.pub known_hostsWindows需要先安装 git,查看 C:...

2020-04-02 08:37:03 495

原创 Arthas,Java 应用实时诊断监控神器

这是一款阿里巴巴开源的 Java 工具,用来对运行中的程序进行实时诊断。简单用了下,马上路转粉了安装很简单Windows 平台,下载这个 jar 包https://alibaba.github.io/arthas/arthas-boot.jar非 Windows 平台$ curl -L https://alibaba.github.io/arthas/install.sh | sh...

2020-03-31 23:50:37 721

原创 打造高效开发人员的 IDEA 主题配置,默认配置,代码风格检查配置

今天围绕 IDEA 的几项配置,打造更舒适的编码环境,让写代码的过程更加有趣便捷注:以下举例中使用的 IDEA 版本为:ULTIMATE 2019.1编码舒适度配置1. 主题还在用默认主题开发?不想让别的同事看到你的界面时惊叹:色彩搭配真好看?赶紧从下面的主题中挑选一款自己喜欢的,马上配置到 IDEA 中主题下载路径有两个主题网站一主题网站二如果有选择困难症,建议用 Darcul...

2020-03-29 15:58:41 1012

原创 Airtest Project - UI 自动化测试神器

Airtest Project 是网易开发的一款跨平台 UI 自动化测试框架( http://airtest.netease.com )。今天阅读该框架的整体介绍和使用说明,总结框架的基本功能和特点如下,对 Android,iOS,3D 游戏等应用的 UI 自动化测试感兴趣的读者请务必看过来跨平台Airtest Project 一大特色是跨平台,支持以下应用的 UI 自动化测试Androi...

2020-03-25 21:23:44 410

原创 如何自动检测界面静止,Android UiAutomator 源码这样解释

本篇跟 Android UiAutomator 自动化测试相关,涉及到 waitForIdle 这个方法。从名字上来看,它的作用是等待空闲,通常用来等待界面上没有变化时使用。但它真的能监测到 idle 状态吗,今天就解读一下它的源码这个方法是从 UiDevice 暴露出来供测试代码调用的,通过查看调用关系,最终实现是在 framework 层的 UiAutomation 中// UiAutom...

2020-03-18 20:49:26 537

原创 Selenium WebDriver 快速入门

今天这篇讲的是快速入门 Selenium,通过阅读本文并且跟随操作,读者将能做到以下:搭建本地 Selenium WebDriver 环境了解 Selenium WebDriver,Selenium IDE 和 Grid 区别如果只想知道 WebDriver 环境怎么搭,如何写出一个 Demo,那么可跳过下面的部分,直接看 Selenium WebDriver 环境搭建,但仍建议了解其测...

2020-03-15 16:52:59 308

原创 requires INJECT_EVENTS permission

今天用一个洋气点的标题(不就是小学生也能看懂的英文吗),是因为 Android 自动化测试报了个错:Injecting to another application requires INJECT_EVENTS permission。为此我闹了点笑话现在仍然是疫情期间,所以在家远程办公时收到同事发来的问题,于是在网上搜到一个答案竟然是因为 USB 调试没打开呢?毕竟是在排查问题,只能先看看我...

2020-03-08 14:27:57 3795 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 762 4

原创 JUnit 单元测试代码,IDEA 一键搞定

会写单元测试代码,不一定成为一名优秀的 Java 程序员,但不会写的话,一定成为不了。以下内容:基于 Windows 端 IDEA 的 Maven 项目,里面涉及到的快捷键在各版本 IDEA 中都适用,可能一些菜单内容会在新版本中发生变化,但操作思想不变,这里基于 2017.1.4 版本一、pom 中添加 JUnit 依赖 <properties> <junit....

2019-11-26 17:27:15 581

原创 Android 部署 Appium,竟如此简单

Long long ago,在做 Android UI 自动化测试选型时,接触过 Appium。记得那时需要手动把代理 jar 塞到 Android 设备里,再执行用例,通过 PC 侧的 Server 去通信,去做操作,等等,总之感觉也不是那么好用。今天再次想到 Appium,是要对 iOS 设备进行自动化控制。于是翻了翻官方文档,经过一番猛如虎的操作后,几乎是零成本的就跑起了 Test。于是我...

2019-11-12 09:08:08 869

原创 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 569

原创 Android 自动化测试一个快速截屏的原生 API

今天在浏览 SystemUI 的内容时无意中发现一个截屏服务 TakeScreenshotService,恰好最近在研究 Android 快速截屏的内容,于是迅速找出源码来看了看通过该服务,找到了 com.android.systemui.GlobalScreenshot,里面有一个方法void takeScreenshot(Runnable finisher, boolean statusB...

2019-08-15 20:19:24 1472

原创 快速反编译 AndroidManifest 并重新打包之旅

背景由于拿到一个第三方的 app 安装到我们车机上不能显示完整的 UI 界面,发现此 app 的 targetSdk=18,而我们车机 =27,解决方案是修改 app 的 targetSdk=27可能的解决方案由于 apk 中的 xml 文件都是经过编译后二进制文件,不能够直接修改,于是凭我肤浅的水平,认为可能的操作方案如下:找到二进制中代表 targetSdk 值的位置,直接修改此处二...

2019-08-13 20:16:33 4606

原创 android 快速截图工具 minicap 之编译与运行

minicap 是什么?minicap 是开源项目 STF 的一个用于快速截图的工具,可用于实时查看屏幕视图,刷新速度可以达到 30-40 FPS由于 SDK 不同,CPU 架构不同,需要根据自己型号的设备自己编译,但是不要怕,编译和操作很简单,但需要点儿执行力准备工作(以下在 windows 64 位机上进行的操作)下载 Android NDK(我使用的版本是经过验证可行的版本)ND...

2019-08-05 08:33:25 3705 1

原创 adb进程是被谁启动的?

背景这两天在排查自动化测试平台中,adb.exe 开启过多的问题。(200个)这是一个很糟糕的表现,当客户端的连接数过多时,会对 Android 的 adbd 带来过多的 socket 连接,进而影响系统性能。开始排查仅仅通过在开启 adb 的位置加 log,并不能取得什么效果。程序里用的是 Runtime.exec 去执行 adb 命令,通过单独执行这样的代码,测试半个小时,未见 adb...

2019-07-26 09:04:34 1352

原创 一点传统代码思维和大数据代码思维感悟

传统代码统计单词数量读入文本,使用 BufferedReader, FileReader,按行存入 List针对每一行,按空格做切割,并使用 Map,key 记录为单词,value 记录为数量,并且,检查 map 是否已经包含这个 key,如果包含,则将 value 增加 1输出 map 的 key,和 value,得到单词数量Spark RDD 代码统计单词数量读入文本,使用 t...

2019-07-10 20:31:26 185

转载 #Linux proc 数据统计文件释义#

http://man7.org/linux/man-pages/man5/proc.5.html/proc/[pid]/stat Status information about the process. This is used by ps(1). It is defined in the kernel source file fs/p...

2019-07-05 19:28:52 161

原创 #Hadoop 环境配置# 无法访问 50070 端口的一次排查过程

背景:三台 centos 虚拟机,部署 hadoop,1 为 namenode,2 和 3 为 datanode现象描述:启动 start-dfs 后,检查 jps,1 的 NameNode,SecondaryNameNode 和 DataNode,以及 2,3 的 DataNode 都启动了在 windows 侧访问 http://spark1:50070,无法访问。排查步骤:在 ...

2019-07-02 08:31:58 1300 4

QCMSExcelAddin.exe

excel文件导入qc的插件,可以轻松使用excel制作用例导入

2012-04-26

空空如也

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

TA关注的人

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