自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CharliChen 's Blog

深知知识虽不是改变命运的充要条件,但却是丰富生命体验的必要积累

转载 Protobuffer 和 Json 深度对比

JSON相信大家都知道是什么东西,如果不知道,那可就真的OUT了,GOOGLE一下去。这里就不介绍啥的了。 Protobuffer大家估计就很少听说了,但如果说到是GOOGLE搞的,相信大家都会有兴趣去试一下,毕竟GOOGLE出口,多属精品。 Protobuffer是一个类似JSON的一个传输...

2017-01-24 17:50:04 1630 0

原创 Android 性能数据采集(概要)

CPU adb shell dumpsys cpuinfo |grep packageName >/address/cpu.txt 大家看第一个应用CPU占用率68%,这个过程是在用户(user)中花61%的时间,并在内核空间(kernel)花费7.1%的时间。或者: adb...

2017-01-24 12:32:12 2337 0

原创 Android稳定性测试-- Monkey二次开发

引子前面一遍blog Monkey源码分析讲到Monkey的代码结构和代码执行流程,相信通过介绍大家应该对monkey的运行原理和核心逻辑有了很深刻的了解。我们做的这一切都是为了更好的了解monkey的内部逻辑进行二次开发。 为什么要二次开发前面的文章也大概说了,它毕竟是一款为稳定性测试而准备的...

2017-01-23 15:31:34 6970 14

原创 Android稳定性测试-- Monkey源码分析

Monkey的代码框架 主控模块:主控模块即Monkey类,是入口函数所在类,主要负责参数解析和赋值、初始化运行环境,执行runMonkeyCycles()方法,针对不同的事件源开始获取并执行不同的事件。 事件源模块:事件源代表不同的事件来源。以MonkeyEventSource为基类...

2017-01-03 19:40:50 3048 3

原创 ITester接口测试框架 (三) : 框架实现细节

项目结构结构图框架实现1.数据准备 和 参数输入数据准备有三种方式: 一:通过访问数据库,获取我们需要的接口测试参数,比如测试登录接口,我们要提前获得 用户名和密码,然后才能连同我们的url发送给服务端。 要想访问数据库,必须要先与数据库建立连接,我这里采用的是JDBC 和C3P0,可以参考我之前...

2016-11-25 12:34:42 11270 4

原创 ITester接口测试框架 (二) : 框架简介和流程图

ITester框架简介上一篇的blog主要讲解了接口测试的基础知识,这一章将详细介绍接口测试框架图和流程图。ITester是处理API接口测试的轻量级自动化测试框架,java语言实现。主要是面向service接口,诸如:HTTP,SOAP,JSON-RPC的轻量级自动化测试框架。将数据准备、参数的...

2016-11-20 18:54:48 11434 0

原创 ITester接口测试框架 (一) :接口基础知识

本系列教材将主要为大家讲解接口测试框架的设计,本框架属于轻量型的,目前的需求基本都能满足,后续还要不断的完善,最后开源出去。暂且命名为ITester(取名字是一件很蛋疼的事情,要与接口相关,又要不能和其他框架重名)同样先规划下系列blog目录: ITester接口测试框架(一):接口基础知识 ...

2016-11-10 15:14:31 7255 1

原创 HttpClient学习笔记 --发送Cookie

简介前面一篇博文HttpClient学习笔记 – 发送Http和Https请求 ,我主要讲HttpClient的get,post基本方法的封装。现在有这样一个场景:比如我们在天猫购物时,想浏览购物车中的商品,做这步操作的前提是我们的app必须是已登录状态,也就是说某些资源或业务只有登录后才可以操作...

2016-11-01 14:46:15 8726 1

原创 HttpClient学习笔记 --发送Http和Https请求

前言在前面有一章我转载过一篇关于HttpClient的文章:HttpClient使用详解,在那篇文章中详细讲解了HttpClient的特性,使用方法和实例。 这篇文章主要就上篇文章进一步浓缩,封装了HttpClient发送http和https请求的方法,形成一个工具类HttpClientUtil...

2016-10-31 21:38:26 10086 4

原创 Smartphone--Android真机管理平台

背景最近在工作中发现几个问题: 作为测试人员,在做产品兼容性测试时,发现手上的测试设备总是不够用,但是可能其他同事的设备在闲置着; 作为Android和H5开发人员,如果测试同事发现一个兼容性的bug,要想还原场景,还要把测试设备给开发(如果不在一个楼层,还要来回跑) 作为产品和运营人员,为了体验...

2016-10-23 23:06:14 4642 1

原创 Java数据库连接池 学习笔记

背景对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因此对于连接的使用成了系统性能的瓶...

2016-10-17 21:21:04 4193 1

原创 Java通过JDBC 进行Dao层的封装

前言前面有一章节,我专门讲解了Java通过JDBC 进行MySQL数据库操作,这主要讲解了MaySQL数据库的连接和简单的操作,但是在真正的java项目中,我们要不断的和数据库打交道,为了提高数据库操作的执行效率和增加代码的复用性,将重新封装一个Dao层,也就是数据访问层 ,用来访问数据库实现数据...

2016-10-16 23:50:33 8592 0

原创 BeanUtils组件 学习笔记

一:BeanUtils组件简介1.什么是BeanUtils程序中对javabean的操作很频繁, 所以apache提供了一套开源的api,方便对javabean的操作,即BeanUtils组件。2.BeanUtils的作用简化javabean的操作。 在一般的写bean组件的时候,都必须要写se...

2016-10-16 15:48:52 2168 0

原创 Mac下配置MySQL服务

安装MySQL下载MySQL安装包:http://dev.mysql.com/downloads/mysql/ 如图,选择dmg包,下载完成,双击后打开对应的pkg包,一直点击下一步,直到安装成功 此时MySQL服务就安装完成啦,是不是很简单~启动和停止MySQL服务 启动MySQL服...

2016-10-13 22:06:40 6248 3

原创 Java通过JDBC 进行MySQL数据库操作

一:前言在测试工作中难免会和数据库打交道,可能大家对数据库语句都比较熟,比如常见的增删改查等,但是当我们在做自动化测试时,比如接口测试,大部分请求参数,可能都是从数据库中取值,并且接口返回值最后都会记录在数据库中,这样前提就需要和数据库建立连接,才能进行读写操作。二:JDBC是什么java提供了一...

2016-10-10 16:46:41 8909 0

原创 TestNG实现用例运行失败自动截图和重跑

在前面我的自动化测试框架系列文章中,有一个知识点没有讲到,现在补上。 在运行自动测试脚本时,经常会需要增加失败时自动截图的功能,以及失败重跑功能,下面介绍一下通过监听器的方式来实现自动截图和重跑功能。一:失败自动截图功能1. 定义一个截图工具类:ScreenShotpackage com.dji...

2016-09-27 20:58:11 7396 11

原创 UI层自动化测试框架(六):持续集成和测试报告

前面几章讲解了测试框架的结构和实现,接下来讲解如何实现测试框架的自动化和测试报告的生成。持续集成本框架我是采用Jenkins实现持续集成的,至于Jenkins环境的搭建和使用,我前面的blog有提到,如果大家不清楚的可以先去阅读我之前写的这篇文章,Jenkins安装和构建部署 运行jenkins,...

2016-09-13 19:28:48 7115 1

原创 UI层自动化测试框架(五):业务层和用例层

业务层该层主要是App的各种业务操作,比如登录,遍历tab,下单等,也就是说把app中各项业务的操作都封装在业务层。比如说登录操作,我们把它封装一个类,大致的流程是:首先是不是要找到登录入口(可能一个app有很多的入口),然后进入登录界面,输入用户名和密码,再点击登录按钮,这样一个完整的登录业务就...

2016-09-11 18:01:25 6507 0

原创 UI层自动化测试框架(四):对象库层

引言本章主要介绍自动化测试框架–对象库层。该层是UI自动化中比较关键的一层,设计自动化框架,不可避免的就是对象库,有一个好的对象库,可以让整个测试框架可维护性更高,大大增强了代码的复用性。讲之前先和大家普及个一概念:PO模式PO模式那什么叫PO模式,为什么要用PO模式?引用如下一段话,你就会恍然大...

2016-09-07 19:34:19 9255 0

原创 UI层自动化测试框架(三):基础层

对象

2016-09-07 14:45:27 8182 2

原创 UI层自动化测试框架(二):Appium基础

一:Appium介绍 Appium是一个移动端的自动化测试框架,可以测试原生应用,移动网页和混合型应用,且是跨平台的。可用于iOS和Android以及Firefox的操作系统。 Appium是由nodejs的express框架写的Http Server。Appium不是它⾃⼰创建⼀套新的测试框...

2016-09-06 20:54:58 9333 0

原创 UI层自动化测试框架(一)-简介和环境搭建

大家好,本系列教程主要介绍基于Appium的UI层的自动化测试框架的设计和实践。我将平时的学习和工作的实践一一的总结下来,给初学者一点灵感和启发,如有不对的地方还请大家指出。 所谓UI层自动化,顾名思义,主要是测试业务层界面层的,关于单元层,接口层的自动化后续再讲,对于测试,我主张的理念就是:分...

2016-09-06 15:54:23 14445 1

原创 Git 学习笔记

本文为charlie.chen原创文章,转载请注明出处:blog.csdn.net/tobetheender一:Git简介引用Git官网的介绍:https://git-scm.com/ Git is a free and open source distributed version contr...

2016-08-23 22:14:44 5539 0

原创 HTTP 学习笔记

本文为charlie.chen原创文章,转载请注明出处:http://blog.csdn.net/tobetheender/article/details/52277989一:HTTP协议简介HTTP是对浏览器客户端 和 服务器端 之间数据传输的格式规范。 属于应用层的面向对象的协议,由于其简捷...

2016-08-22 16:29:55 6118 0

原创 Linux 文件权限 学习笔记

一 Linux档案/目录的属性二 chmod 符号模式三 实践阶段首先我们先看看怎么取消所有用户执行 一个目录下所有文件的权限:a 代表对所有用户执行此操作 -x 意为取消执行权限 * 代表操作对象为该目录下所有文件(注意并不包括子文件夹下的文件)如果我们对一个文件加下的所有操作执行...

2017-01-24 17:28:57 482 0

原创 浏览器加载网页的过程

fdg

2017-01-03 16:34:28 1528 0

原创 在MAC平台下使用Eclipse出现了中文乱码

在MAC平台下使用Eclipse出现了中文乱码  在Preference(偏好设置)中,搜索框中输入content找到Content Types,然后在text中找到并选中Java Source File, 然后在Defalut encoding输入UTF-8或者输入GBK(具体输入哪...

2016-12-21 15:53:08 529 0

原创 Android屏幕截图方式总结

0、Android屏幕截图方式: 借助PC端工具截图Android手机端截图 1、借助PC端工具截图 PC端截图可用的工具非常之多,从Android SDK提供的adb、ddms工具,到各大第三方助手应用宝、刷机精灵、豌豆荚等等。 工具虽多,但这些它们的...

2016-12-20 14:43:35 2182 1

转载 如何更快速有效的收集Android应用的FPS

FPS是什么? FPS(每秒传输帧数(Frames Per Second))是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数,对应的就是APP UI界面的刷行频率,在一个UI动画的播放过程中,fps越大,界面表现越流畅,fps越低,界面表现越卡顿,因此,测量FPS经常用于...

2016-12-14 22:42:35 2969 2

原创 Android 热修复原理

Android热修复原理 这段时间比较难闲,就抽空研究一下Android热修复的原理。自从Android热修复这项技术出现之后,随之而现的是多种热修复方案的出现。前两天又看到一篇文章分析了几种热修复方案的比较。 原文地址是:[Android热修复] 技术方案的选型与验证 看完这篇...

2016-12-13 18:07:28 422 0

转载 LeakCanary(二)内存泄露监测原理研究

LeakCanary 内存泄露监测原理研究 字数2978 阅读1120 评论2 喜欢8 "Read the fucking source code" -- linus一句名言体现出了阅读源码的重要性,学习别人得代码是提升自己的重要途径。最近用到了LeakCanary,顺便...

2016-12-13 14:44:46 1542 1

转载 MAC上反编译android apk---apktool, dex2jar, jd-jui安装使用(含手动签名)

前文 介绍了在Windows平台利用强大的APK-Multi-Tool进行反编译apk,修改smali源码后再回编译成apk的流程,最近受人之托,破解个apk,所幸的是所用到的这三个软件都是跨平台的,mac上也妥妥的。这里记录下在mac上所用的东西和流程。  总共需要三个软件,为了便于找到最新的...

2016-12-13 10:12:03 286 0

转载 WeTest--Android 内存泄露实践分析

本文转自:WeTest:http://wetest.qq.com/lab/view/161.html 定义 ​内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。...

2016-11-29 18:44:50 704 0

转载 LeakCanary(一)直白的展现Android中的内存泄露

之前碰到的OOM问题,终于很直白的呈现在我的眼前:我尝试了MAT,但是发现不怎么会用。直到今天终于发现了这个新工具: 当我们的App中存在内存泄露时会在通知栏弹出通知: 当点击该通知时,会跳转到具体的页面,展示出Leak的引用路径,如下图所示: LeakCanary 可以用更加直白的...

2016-11-29 18:41:39 385 0

转载 Android App 耗电量统计

前言     在Android统计App耗电量比较麻烦,直至Android 4.4,它仍没公开“电量统计”API或文档……额,是的,仅没有公开,并不是没有。平时在手机“设置- 电量”看到的数据          就是系统调用内部API的统计结果。   基础概念   ...

2016-11-26 23:42:33 1082 0

转载 Android 获取内存信息---ActivityManager的使用

文章出处:http://blog.csdn.net/qinjuning                                本节内容主要是讲解ActivityManager的使用,通过ActivityManager我们可以获得系统里正在运行的activities,包括  ...

2016-11-26 23:36:41 704 0

转载 Android APP编译和运行原理

在本篇中,主要介绍Android平台应用程序的运行原理,在阅读了SDK文档中“Application Fundamentals”一篇的内容后,根据自己的理解绘制了下面的示意图:       每个应用程序安装后,系统便会为其分配一个独立的存储空间,所谓的“Security Sandbo...

2016-11-21 12:59:41 9367 0

转载 Android 内存泄漏总结

以下部分图片、实例代码和文段都摘自或参考以下文章 : 支付宝: Android怎样coding避免内存泄露 支付宝钱包Android内存治理 IBM : Java的内存泄漏 Android Design Patterns : How to Leak a C...

2016-11-21 12:54:50 1394 0

原创 Java 堆、栈、方法区的区别

结构化语言里函数(子程序)调用最方便的实现方式就是用栈,以至于现在绝大部分芯片都对栈提供芯片级的硬件支持,一条指令即可搞定栈的pop操作。栈的好处是:方便、快、有效避免内存碎片化。栈的问题是:不利于管理大内存(尤其在16位和32位时代)、数据的生命周期难于控制(栈内的有效数据通常是连续存储的,所以...

2016-11-21 12:49:10 10394 4

转载 理解Java虚拟机体系结构

1 概述   众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么。正是得益于Java虚拟机,它号称的“一次编译,到处运行”才能有所保障。 1.1 Java程序执行流...

2016-11-21 12:43:49 427 0

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