摘要: 基于Junit的白盒测试(基本没什么要求的可以直接用Junit了) 基于Testng的白盒测试(Testng的多线程运行和dataprovider和强大listener) Wire Service on the method(随时在method里面均可new service) 整体流程,后面会讲讲m 阅读全文
posted @ 2017-01-21 21:46 q55091 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 1.概述 从新功能的稳定性出发,用monkey过于随机无法覆盖新功能的稳定性和找出新功能中可能出现crash的地方。基于uiautomator安卓自动化框架,实现对新功能的循环遍历,增加遍历的可控性,以发现更多新功能稳定性的问题。 2.总体功能介绍 以onback为导向/导流,在遍历完指定次数后,回 阅读全文
posted @ 2017-01-21 21:44 q55091 阅读(1273) 评论(4) 推荐(0) 编辑
摘要: ANR原因: ● 5s内无法响应用户输入事件(例如键盘输入, 触摸屏幕等). ● BroadcastReceiver在10s内无法结束. ● 获取不到CPU时间片(CPU太满了); ● 主线程等待未及时出现的event,不能执行下一步; ● 处理流程过于复杂。 ANR类型: Key Dispach 阅读全文
posted @ 2017-01-21 21:44 q55091 阅读(2574) 评论(0) 推荐(1) 编辑
摘要: 目标:能处理一切adb能处理的问题 开源地址:https://github.com/seasonxie/CommandADB 1.UI开发:上中下Panel mAdminPanel 上部三层按钮JScrollPane 中间日志输出bottomPanel 底部两个按钮 2.部分操作处理(如清除数据,启 阅读全文
posted @ 2017-01-21 21:42 q55091 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 把自己需要的请求保存下来,再用接口测试框架调用,并验证返回结果。 可以做请求录制,自动断言 保存Request 把下面代码贴在OnBeforeRequest()方法末尾 //过滤无关请求,只关注特定请求 保存Response 把下面代码贴在OnBeforeResponse()方法末尾 //过滤无关请 阅读全文
posted @ 2017-01-21 21:41 q55091 阅读(716) 评论(0) 推荐(0) 编辑
摘要: Jacoco-精准测试 开源地址:https://github.com/seasonxie/JacocoAndroid 不依赖源码执行接口测试也能直观看出覆盖度知道什么样的用例保证哪块的代码,更好的精准度测试 1.实现jacoco Instrumentation操作(后面通过命令直接启动该instr 阅读全文
posted @ 2017-01-21 21:37 q55091 阅读(1181) 评论(0) 推荐(0) 编辑
摘要: Nginx 的安装就不解释了,方便起见,建议在各平台可以直接执行对应安装命令: # CentOSyum install nginx;# Ubuntusudo apt-get install nginx;# Macbrew install nginx; 一般可以在 /etc/nginx/nginx.c 阅读全文
posted @ 2017-01-21 21:32 q55091 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 整体流程: 下面主要是阐述这一块 1.接口自动化框架关键代码-数据构造: 可desc 获取table最新的结构,转换成xml格式。做数据构造时遇到数据库变化,例如有必填的字段添加,框架都会读xml里面的默认值去构造。减少数据库 表变化对接口自动化影响 (1)更新数据库表结构,保存为List<Map< 阅读全文
posted @ 2017-01-21 21:32 q55091 阅读(637) 评论(0) 推荐(0) 编辑
摘要: (1)看monkey就要看它底层如何触发操作,下面列举了几个send MotionEvent 的方法。 我们可以看到包括monkey和一些自动化框架都是基于什么去操作页面的。 Send Event 1.Monkey 2.Instrumentation 3.Uiautomation (2)改造 1.保 阅读全文
posted @ 2017-01-21 21:30 q55091 阅读(770) 评论(2) 推荐(0) 编辑
摘要: 1.获取bug相关信息 2.获取搜索信息 阅读全文
posted @ 2017-01-21 21:29 q55091 阅读(1191) 评论(0) 推荐(0) 编辑
摘要: 从testwather看自定义rule: 原理:实现一个statement,分别在指定位置回调对应的方法(start,success,fail,finish) 返回看statement是怎么生成的 在JUnit执行每个测试方法之前,methodBlock方法都会被调用,用于把该测试包装成一个Stat 阅读全文
posted @ 2017-01-21 21:12 q55091 阅读(631) 评论(0) 推荐(0) 编辑
摘要: 美观的reprot是自动化不可少的一部分,哈哈 无论你用testng或者junit,只需要在onfailed,onsucess,onfinsh上回调生成报告的方法就可以了 http://extentreports.com/ 先看图: 1.初始化: 2.各个阶段的动作 beforeclass fail 阅读全文
posted @ 2017-01-21 21:11 q55091 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 1.继承 MonitoringInstrumentation 2.build gradle 3.启动 am instrument -w -e class com.u2.zhaotang.uiautomator2test.testcase.RemoteDeviceTestCase#test01 com 阅读全文
posted @ 2017-01-21 21:10 q55091 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 首先启动的时候指定运行的类和方法 开始提取你指定的类和方法 如果有#号探测到,会调用addTestClass(String className, String methodName),把method加入测试类 看addSingleTestMethod是如何根据测试类clazz和它的一个方法创建一个j 阅读全文
posted @ 2017-01-21 21:09 q55091 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 自定义注解tester 在testcase中引用 在结果统计中应用 总结:为每个case都指定了tester,就是每个case都有对应的负责人,到时候出错了好找人啊。 其实还有很多其他的应用,大家可以想下 阅读全文
posted @ 2017-01-21 21:06 q55091 阅读(219) 评论(0) 推荐(0) 编辑
摘要: UiAutomation UiAutomation主要和AccessibilityService进行连接然后获取界面空间信息和注入事件,截图 获取界面空间信息: 注入事件: 截图: UiAutomatorBridge UiAutomatorBridge相当于UiAutomation的代理,进行获取界 阅读全文
posted @ 2017-01-21 21:06 q55091 阅读(1350) 评论(0) 推荐(0) 编辑
摘要: 继承testrunner实现runner 运行testrunner 应用 可以根据外部传入的值,来确定需要执行什么用例 例如-e priority p1 取出priority值,在addtestcase的时候只加入priority是P1的testcase 获取runner源码 阅读全文
posted @ 2017-01-21 21:05 q55091 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 在Fiddler工具面板出自定义个面板, 分析当前fiddler 请求区域所有请求 开发语言:C# + Microsoft Visual Studio 2010 先看看分析内容:总请求,总耗流,加载时间(面板最后一个请求-第一个请求),最耗时请求,最耗流请求,重复请求 代码片段: 面板-设置按钮,展 阅读全文
posted @ 2017-01-21 21:04 q55091 阅读(3207) 评论(0) 推荐(0) 编辑
摘要: IDEA: forisoutcrtl alt tcrtl d psfv crtl shift f crtl shift 左键 直接进入接口实现 SQLyog: crtl+t 新建查询 crtl+f9 执行查询 阅读全文
posted @ 2017-01-21 21:02 q55091 阅读(111) 评论(0) 推荐(0) 编辑
摘要: ##################### linux cp -r * /data/wikils -l | grep "^-"|wc -lgrep -o world a.txt | wc -l curtime=$(date +%Y%m%d%H%M) for i in $@dofind ${bkwik 阅读全文
posted @ 2017-01-21 21:01 q55091 阅读(171) 评论(0) 推荐(0) 编辑