第一讲分享了下安卓自己主动化一些概况和一些自己主动化框架现状和技术可以解决什么样的问题. 这次课就深入到android世界里面.遨游.翱翔.深入了解自己主动化測试核心技术. 搞过编程开发的同学听到instrumentation这个东西一定不陌生.在android架构里面分四层(最以下是硬件驱动相关抽象层.不是笔者讨论的内容范围),往上面一点是协议栈.也不是讨论的核心,都和c语言相关.一直到第三层框架层(framework). 细分有二: A.   android的改良虚拟机dalvik和Runt…
Android自己主动化測试框架和工具在四年多的发展日趋成熟. 从五年前的第一代自己主动化架构演进到眼下第四代(本系列讲座第7篇后将具体剖析第三代和第四代自己主动化框架)从曾经最早谷歌推崇的monkey随机測试工具到点触流自己主动化工具monkeyrunner.MonkeyTalk.基于元素识别的自己主动化框架sikuli.seeTest.iTest.基于控件识别的Robotium.SL4A.这三种技术各有千秋.基本上如今做出的自己主动化框架都是整合或者改动了以上这些免费的自己主动化框架:比方中…
def swipe_ele_left(self, ele, dur=800): """ 基于控件元素左滑操作 :param ele: 控件元素 :param dur: 在多少时间内完成滑动动作(单位:ms毫秒) :return: """ start_x = int(ele.rect["width"]) - 20 end_x = int(ele.rect["x"]) height = int(ele.rect…
眼下android SDK里自带的现成的測试工具有monkey 和 monkeyrunner两个.大家别看这俩兄弟名字相像,但事实上是完全然全不同的两个工具,应用在不同的測试领域.总的来说,monkey主要应用在压力和可靠性測试上,执行该命令能够随机地向目标程序发送各种模拟键盘事件流,而且能够自定义发送的次数,以此观察被測应用程序的稳定性和可靠性,应用起来也比較简单,记住那几个命令即可了.而monkeyrunner呢,相比之下会强大一些,它主要可应用于功能測试,回归測试,而且能够自定义測试扩展,…
我在之前的两篇文章中用java来实现过 Android 自己主动化測试(1)怎样安装和卸载一个应用(java).Android 自己主动化測试(2)依据ID查找对象(java). 可是本质上都是用monkeyrunner相应的java lib 来实现的.可是相关的文档很少.假设真的要用monkeyrunner来做功能性的自己主动化測试.强烈还是推荐使用python语言 1.monkey runner The monkeyrunner tool provides an API for writin…
如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolectric.另外LessPainful也提供服务来进行真实设备上的自己主动化測试. Android自身提供了对instrumentation測试的基本支持,当中之中的一个就是位于android.test包内的ActivityInstrumentationTestCase2类,它扩展了JUnit的Test…
作者:韦易笑链接:https://www.zhihu.com/question/29636221/answer/45102191来源:知乎著作权归作者所有,转载请联系作者获得授权. 更新:擦,本来只有一句话,推荐Qt,远离微软,有人追问,补充了点,有人又追问,又补充了点,然后出了趟门回来,感觉跟捅了马蜂窝一样.既然都说到微软了,那就接着展开一下. 问题的本源 微软就是战线太长了,忙着去主导各种标准,制订各种框架,这样的话,才能更好的夹带私货,用一个你必须用的东西推进另外一个他想让你用的东西,诸如…
本文为大家演示了如何使用Chronometer控件实现Android计时器的实例. 先贴上最终的实现效果图: Android计时器实现思路 使用Chronometer控件实现计器的操作.通过设置setBase(long base)来设置初始时间,然后为其添加一个 setOnChronometerTickListener(Chronometer.OnChronometerTickListener l)事件来判断时间是否到了,然后再调用其stop()方法实现停止计时. Android计时器实现代码…
尽管 一般公司都有专门的測试人员,可是有时候 免不了 我们既要去开发产品,也要去測试产品,測试产品.有些机械化的 点界面的操作,谷歌已经给我们提供了工具.Monkey, 猴子測试. 什么是Monkey Monkey是Android中的一个命令行工具.能够执行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力測试.Monkey測试是一种为了測试软件的稳定性.健壮性的高速有效的方法. Monkey的特征 1. 測试的对象仅为…
一.为什么须要兼容性測试(下面称CTS)? 1.1.让APP提供更好的用户体验.用户能够选择很多其它的适合自己设备的APP.让APP更稳定. 1.2.让开发人员设计更高质量的APP. 1.3.通过CTS的设备能够执行Android market. 另外,CTS是免费的,并且非常easy. 二.CTS是开源的測试框架,使用它来測试你的设备是否具备兼容性.CTS主要包括两个组件: 执行在PC上的測试框架组件.主要用来管理測试用例(test case)的执行. 执行在设备或模拟器上的測试用例.这些用例…
在这个系列的上一篇文章中,我们介绍了MonkeyRunner,并提到假设依据坐标来编写自己主动化脚本的话存在着一定的局限性(点击文末"阅读原文"能够打开这篇文章查看).这篇文章将进一步介绍依据控件的id来编写自己主动化脚本的方法 依据控件的id来操作控件 从Android 2.3.3開始.MonkeyRunner添加了EasyMonkeyDevice和By这两个类.它们都位于com.android.monkeyrunner.easy包内,借助这两个类,我们就能够依据控件的id来操作控件…
Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg and Misys担任QA经理.同一时候他还是Sogeti的自己主动化測试顾问.Clayton对自己主动化測试超迷恋,还见识了怎样亲自成功实施測试自己主动化. ? 測试自己主动化的优点我们都非常清楚,更快地反馈问题,降低手工測试,持续集成就是当中随口可举的.測试团队成员越多,公司使用自己主动化越多…
自己主动化集成測试的角色 本专栏的上一篇文章讲述了Maven与持续集成的一些关系及详细实践,我们都知道,自己主动化測试是持续集成不可缺少的一部分,基本上,没有自己主动化測试的持续集成,都非常难称之为真正的持续集成.我们希望持续集成可以尽早的暴露问题.但这远非配置一个 Hudson/Jenkinsserver那么简单,仅仅有真正用心编写了较为完整的測试用例.并一直维护它们,持续集成才干孜孜不倦地执行測试并第一时间报告问题. 自己主动化測试这个话题非常大,本文不想争论測试先行还是后行,这里强调的是測…
  一.WEB控件定位是什么 要想弄懂这个问题,我们还是基于实践来学习.我们先来看一条入门级别自动化测试用例的构成. DemoCase:正确用户名和密码登录博客园,登录成功 URL: https://account.cnblogs.com/signin 编写思路(入门级别) 1.打开谷歌浏览器 2.打开博客园登录网页地址 3.在用户名输入框内输入用户名 4.在密码输入框内输入密码 5.点击登录 6.检测是否跳转到了登录成功的页面 脚本如下图: 现在我们来分解下输入用户名这个动作 1.首先找到用户…
1.       Reportviewer 报表 1.1.       Reportviewer控件 注:本教程附2个事例: l  演练:在本地处理模式下将数据库数据源与 ReportViewer Web server控件一起使用 l  演练:在本地处理模式下将业务对象数据源与 ReportViewer Web server控件一起使用 假设您已经对ReportViewer控件基础知识比較了解,能够直接參阅事例. 1.1.1.                 简单介绍 Microsoft Vis…
1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.lang.Object   ↳ android.view.View   ↳ android.widget.TextView 直接子类: Button, CheckedTextView, Chronometer, DigitalClock, EditText 间接子类: AutoCompleteTextV…
Winform的开发基本都是基于控件事件的,也就是事件驱动型的. 多选框的放置和值的获取有很多种,这里介绍几个简单常用的方法 1.直接放置Checkbox,并获取Checkbox的值 上图 做法也非常简单,就是在form中放置多个checkbox,然后循环遍历,检查其checked没有,然后将checkbox.text拼接到一起,赋值给label,当然实际开发中,我们会将选取的值放入数据库中.上代码 private void button1_Click(object sender, EventA…
本文对Flutter的29种布局控件进行了总结分类,讲解一些布局上的优化策略,以及面对具体的布局时,如何去选择控件. 1. 系列文章 Flutter 布局详解 Flutter 布局(一)- Container详解 Flutter 布局(二)- Padding.Align.Center详解 Flutter 布局(三)- FittedBox.AspectRatio.ConstrainedBox详解 Flutter 布局(四)- Baseline.FractionallySizedBox.Intrin…
原文地址:https://www.codeproject.com/articles/14075/high-speed-charting-control 本文翻译在CodeProject上的介绍(主要还是谷歌翻译.看不太明确的地方,请对照原文.敬请原谅),方便自己和后面人的学习(花费了两天时间.希望是值得的). 推荐一个前辈写的东西:TeeChart替代品,MFC下好用的快速画图控件-(Hight-Speed Charting),自己也转载了这篇文章,在转载的文章中依据自己的实验改动了一些东西.改…
概述 本文主要解说怎样在 Android 下实现高仿 iOS 的开关按钮,并不是是在 Android 自带的 ToggleButton 上改动,而是使用 API 提供的 onDraw.onMeasure.Canvas 方法,纯手工绘制.基本原理就是在 Canvas 上叠着放两张图片,上面的图片依据手指触摸情况.不断移动,实现开关效果. 本文演示样例代码:https://github.com/heshiweij/EasySwitchButton 效果图: 功能点: 1. 不滑出边界,超过一半自己主…
近期在复习之前的笔记,在回想MonkeyRunner时看了看google官网的内容,写得不错.就翻译出来分享下.事实上google官网真是一个学习的好地方. 基础知识 MonkeyRunner工具提供了一个API用于在Android代码之外控制Android设备和模拟器.通过MonkeyRunner.您能够写出一个Python程序去安装一个Android应用程序或測试包.执行它,向它发送模拟击键.截取它的用户界面图片.并将截图存储于工作站上.monkeyrunner工具的主要设计目的是用于測试功…
近期面试APP开发者的时候,遇到了技术总监问 APP測试的概念性问题.后面感觉主要的项目流程.项目逻辑.屏幕适配. 測试是全然没有问题的.可是对于APP的性能測试.压力測试等高端的測试.还是存在着美中不足之处呀,毕竟是搞专业的APP开发 人员. 可是,自己追求APP开发的流程是永不止境的,所下面定决心去了解深挖一下APP的測试,饿补一下APP的高端測试流程及其常 用工具. 近期開始研究Android自己主动化測试方法.对当中的一些工具.方法和框架做了一些简单的整理.当中包含android測试框…
<深入理解Android 卷III>即将公布,作者是张大伟.此书填补了深入理解Android Framework卷中的一个主要空白,即Android Framework中和UI相关的部分. 在一个特别讲究颜值的时代,本书分析了Android 4.2中WindowManagerService.ViewRoot.Input系统.StatusBar.Wallpaper等重要"颜值绘制/处理"模块 第6章 深入理解控件(ViewRoot)系统(节选) 本章主要内容: ·  介绍创建…
本文为原创,如有转载,请注明出处:http://www.cnblogs.com/jackybu 前言 章节: 1.需求描述以及c/c++实现日期和月历的基本操作 2.ios实现自绘日期选择控件 3.android实现自绘日期选择控件 目的: 通过一个相对复杂的自定义自绘控件来分享: 1.ios以及android自定义自绘控件的开发流程 2.objc与c/c++混合编程 3.android ndk的环境配置,android studio ndk的编译模式,swig在android ndk开发中的作…
时光飞逝,生活.工作.业余研究总是在不停忙碌着,转眼快到月底,该月的博客文章任务未完,停顿回忆一下,总结一些经验以及好的东西出来,大家一起分享一下.本文章主要介绍报表的生成,基于Aspose.Cell控件的报表生成.谈到报表,估计大家都有所领悟以及个人的理解,总的来说,一般的报表生成,基本上是基于以下几种方式:一种是基于微软Excel内置的引擎来实现:一种是构造HTML格式的Excle报表:一种是基于控件的方式来处理,基于控件有很多种方式,个人认为比较有名的是Aspose.Cell(收费破解)和…
第4章Android常用基本控件 控件是Android用户界面中的一个个组成元素,在介绍它们之前,读者必须了解所有控件的父类View(视图),它好比一个盛放控件的容器. 4.1View类概述 对于一个Android应用来说,android.app.Activity类实例是一个最基本的功能单元.一个Activity实例可以做很多的事情,但是它本身无法显示在屏幕上,而是借助于View和ViewGroup,它们是Android平台上最基本的两个用户界面表达单元. 4.1.1 关于View View对象…
这些属性,内部都是结构体:CGRect CGPoint CGFloat 背景知识:所有的控件都是view的子类,屏幕就是一个大的view:每个view都有个viewController,它是view的管家,每个view对应着一个viewController,来管理view. frame & bounds & center ======================================== 1> frame可以修改对象的位置和尺寸 2> bounds可以修改对象的尺…
本文章主要介绍报表的生成,基于Aspose.Cell控件的报表生成.谈到报表,估计大家都有所领悟以及个人的理解,总的来说,一般的报表生成,基本上是基于以下几种方式:一种是基于微软Excel内置的引擎来实现:一种是构造HTML格式的Excle报表:一种是基于控件的方式来处理,基于控件有很多种方式,个人认为比较有名的是Aspose.Cell(收费破解)和NPOI(开源). 而报表的表现方式大致可以分为两种: 一种是通用的二维表导出的Excel格式,这种方式通过封装一个操作类,传递一个DataTabl…
本文绝大部分内容引自这篇文章: http://www.devx.com/Java/Article/31983/0/page/1 我们在编写大型程序的时候,须要写成千上万个方法或函数,这些函数的功能可能非常强大,但我们在程序中仅仅用到该函数的一小部分功能,而且经过调试能够确定,这一小部分功能是正确的.可是,我们同一时候应该确保每个函数都全然正确,由于假设我们今后假设对程序进行扩展,用到了某个函数的其它功能,而这个功能有bug的话,那绝对是一件非常郁闷的事情.所以说,每编写完一个函数之后,都应该对这…