记一次基于Robotium改造的测试实践

1、前言 去年年终复盘,测试这边留了两个Action:一是自动化工具推广,提高开发可操作性;二是App自动化稳定性及推广。如何提高可操作性?如何推广?由此便萌生了要做一个专门的App。 今年初,我们上线了买家端入口,产品采用大量H5开发,随着产品迭代的加快以及开发测试比的增加,老的框架已经无法满足新的挑战: 开发自测 前端页面变动频繁(目前来看这点还好) App上各类组件的测试 获取测试覆盖率 无论如何,对于本篇读者我都默认你已经会了一点Android测试开发的基础。本篇不谈论做UI自动化的投入产出比,而是对Android测试技术的研究和一些想法,希望能给到测试开发们工作上的一些帮助。 2、 »

TCP网络编程杂谈

作为一名IT工程师,网络通信编程相信都会接触到,比如Web开发的HTTP库,Java中的Netty,或者C/C++中的Libevent,Libev等第三方通信库,甚至是直接使用Socket API,但是很多程序员都仅限于使用,对于使用的方式是否合理并没有特别深的理解,比如有一股脑的使用线程池解决问题的(虽然大部分情况采用多线程方案不会有什么问题,但是编程复杂度比起单线程提升了很多,线程开的太多也会导致切换过于频繁,性能未必有太大提升),也有始终用一条线程处理所有业务的,然后上线之后经常出现各种服务响应慢等问题。 在介绍TCP的网络通信编程时,不得不提到同步,异步,阻塞,非阻塞这几个概念,C++系和Java系沟通网络IO相关时, »

Zan 连接池

一、设计背景 Zan是基于PHP协程的网络服务框架,提供最简单的方式开发面向C10K+的高并发HTTP服务或SOA服务。 核心特性: 1. 基于 yield 实现了独立堆栈的协程 2. 类似于 Golang 的并发编程模型实现 3. 基于 swoole 提供非阻塞I/O服务 4. 连接池支持 5. 类似 Golang 的defer机制解决由于异常导致的资源未释放、锁未释放的问题 »

Zan & Swoole2.0

Swoole2.0 alpha版发布,大家可能会有个疑惑, Zan的协程框架是不是要关门大吉了呢? 答案当然是否定的。 Zan和Swoole2.0走的方向是不一样的; Swoole2.0的方向是希望和Golang一较高下; Zan的定位是搭建一个Zan + Golang的生态; Swoole2.0 鸟哥的出现确实让国人在技术界猛的一抬头。 天峰的Swoole也备战了很多年,任重道远。 Zan目前是基于Swoole搭建的,和2.0并没有什么冲突。 大家一起努力吧。 重申下Zan的定位: Zan 的定位是高并发 Web 服务或业务中间件。 »

深入浅出Cache

章节 ① 什么是Cache? Cache的目标? ② Caching住哪些内容? ③ 我们想要的Cache产品 ④ Cache使用方式 ⑤ 对于总体系统的提高 ⑥ 关于Sharding ⑦ Cache痛点和关注点 ⑧ 我们用的Cache的产品 ⑨ 我们的一些实践 ① 什么是Cache? Cache的目标? 在说这个之前我们先看下典型Web 2.0的一些架构演变(这里不用”演进”). 从简单的到复杂的通用架构. 首先, 诚然说Cache在互联网公司里,是一个好东西. Cache化,可以显著地提高应用程序的性能和便于提供应用程序的伸缩性(可以消除不必要请求落到外在的不频繁改变数据的DataSource上). 那么Cache化目的非常明显, »