Android—appium自动化测试.

Slides:



Advertisements
Similar presentations
環境游離輻射 ( 六 ) 輻射與核能發電. 媽!這是我上班的 地方-核電廠。 地方好寬闊喔! 聽說日本原子彈爆炸死好幾 萬人,阿榮啊!你在這裡上 班,安全嗎?
Advertisements

Android ADT + Android SDK Eclipse Eclipse 編輯器 JAVA JAVA 開發工具.
《小狗包弟 》之 从阅读到写作 学校:和风中学 年级:高一 参赛者:彭龙英. 预习检测一 思考:同学们读完作者与包弟 的故事后,说一说作者所表达的情 感是什么?
急性腹痛 急性疼痛. 急性疼痛 — 孙树杰、沈洪、 刘保池 (1)(1)(1)(1) 概 述 (2)(2)(2)(2) 重症急性腹痛的临床特点 (3)(3)(3)(3) 急性腹痛的分类及诊治 主要教学内容.
Mooctest.net- 慕测平台 南京大学陈振宇团队 刘子聪. 慕测平台 特点 真实编程环境( IDE ) 实时编程 / 测试评分 全程编程行为跟踪 自定义度量评估方式 平台免费、平台开放、接口开放.
Android App簡介及 App Inventor 2體驗 靜宜大學資管系 楊子青
Android App for querying stocks
虹膜识别健康养老服务智能系统项目.
全国卷开放性试题的命题特点分析与教学策略
探究活动课:互联网+历史素材阅读与研讨 古代中国的选官制度 黄天庆  探究活动课:互联网+历史素材阅读与研讨 古代中国的选官制度 黄天庆 
職校、五專群科簡介.
課程地圖 (104年入學-日間部) 校通識核心 專業課程 必修與選修 與管理模組 網路技術 App設計與應用模組 學院通識核心 學院專業核心
课程改革的深化与高三有效教学 安徽省教育科学研究院 徐贵亮
移动校园Hybrid应用开发介绍 2015年11月.
我征服了黃山 林達的黃山之旅 2006春.
江苏省工程造价管理协会 工作报告 2015年4月21日 扬州.
急難救助措施簡介 內政部社會司 99年6月7日.
101年8月份 嘉義市道路交通安全聯席會報 酒駕行為與肇事現況分析 主講人:內政部警政署交通組科長張夢麟 1.
高校邦在线学习平台 学生学习手册 北京高校邦科技有限公司.
中国特色社会主义政党制度 主讲:西南大学 李强 2011年12月28日.
第十六章 股票交易資訊分析與試算 課前指引 目前最熱門的理財方式莫過於投資股票市場,因此本章首先講解如何從美國股市匯入重要資料,之後教授使用WEB查訊功能,匯入台灣股市即時或盤後交易資訊到Excel工作表中,再利用資料分析工具來協助瞭解個股。最後再利用Excel圖表功能來繪製成股票K線圖,這是不是很有趣及實用呢?
欢迎南京市政治学科的教研同仁 光临指导.
Part 2 開發Android應用程式的流程
基于图像识别测试手机浏览器首屏加载时间的测试方法
Lync Web App 快速參考 撥入會議 使用電腦音訊加入 Lync 會議 管理視訊顯示
103學年度第1階段 志願選填試探後輔導作為 成效檢討與精進建議
活动主题:佛山智造 中国骄傲 随着互联网、云计算、大数据以及移动互联网的快速发展,技术不仅仅是一种工具,正加速重构着品牌的新格局。
荷福威士顿机器人科技有限公司 上海荷福集团
第一部分 系统概述 第二部分 技术背景 目录 第三部分 维修流程描述 成功案例 第四部分. 第一部分 系统概述 第二部分 技术背景 目录 第三部分 维修流程描述 成功案例 第四部分.
普通高等教育“十一五”国家级规划教材 信息系统分析与设计 刘腾红 孙细明 主编 科 学 出 版 社.
四川省卫生监督移动 执法终端介绍 发言人:陈成身 四川省卫生执法监督总队.
獎補助經預計支用報告 105年.
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
建立Android新專案 建國科技大學 資管系 饒瑞佶 2010/10.
APP課程:Android程式設計開發環境與工具介紹
第9章 App提交 倚动实验室.
Hello World 體驗實作第一個JSP程式.
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
第四章 網頁表單與資料傳遞.
Chapter 4 基本伺服器控制項.
Selenium经典教程 selenium教程.
Ch06 再談選單元件 物件導向系統實務.
行動商務與多媒體應用學系 詹啟祥 辦公室:HB35室 分機:
Ch5 Android應用程式的主要組成.
绿豆芽科技 让科技融入生活. 绿豆芽科技 让科技融入生活 让天下没有非互联网的公司 传统行业公司 新型科技公司 绿豆芽科技 产品研发 供应链 渠道 物联网硬件 云计算平台 APP应用 传统优势 竞争力 用户体验 团队由数十名硕士生及博士生组成,有着在德州仪器、中兴等知名企业的工作经历,项目经验丰富。团队成员获得过:电子设计竞赛国家一等奖、“Intel杯”嵌入式邀请赛冠军、“微软创新杯”
App Inventor 2體驗 靜宜大學資管系 楊子青
CH7 佈局、按鈕與文字編輯元件.
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
Android 视频教程简介.
App Inventor 2體驗 靜宜大學資管系 楊子青
华东理工大学 关于新校园卡功能启用的相关说明 2018年09月07日.
福智 學員平台 2018/6/9 幹部月會 羅東教室.
Android 开发入门.
基于App Inventor的物联网工程导论课程实验设计
App Inventor 2體驗 靜宜大學資管系 楊子青
102學年度下學期 班親會 五年仁班 楊曉逸老師.
實驗十六:匯出APK安裝檔與軟體上架.
歹徒透過通訊軟體詐騙手法1-冒用身份 若被害人通訊軟體「允許被加入好友」為開啟狀態 駭侵Google帳戶取得通訊錄
如何制订幼儿园园本培训工作计划 大连亿达世纪城幼儿园 姜承华 2011年3月10日.
第二階段「校園徒步區建置」 執行成果報告.
树立开放理念 强化管理水平 全面提升来华留学生教育工作水平
用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青
Android进程间通讯.
学 生 端 操 作 指 南
美和科技大學資訊科技系 助理教授 美和科技大學資訊科技系 學生士
為民服務白皮書 台灣電力公司彰化區營業處  彰化區營業處 為民服務白皮書 誠信 關懷 服務 成長 1.
实验课程学习手册.
云控APP说明书 适用于云控平台配置.
云控APP说明书 适用于云控平台配置.
歹徒透過通訊軟體詐騙手法1-冒用身份 若被害人通訊軟體「允許被加入好友」為開啟狀態 駭侵Google帳戶取得通訊錄
Presentation transcript:

Android—appium自动化测试

Android 自动化测试技术介绍 Android 自动化测试环境配置 Android 自动化测试spart.android Android 自动化测试UiAutomator Android 自动化测试控件操作 Android 自动化测试client端脚本编写

Android 自动化测试技术介绍

Android自动化测试技术介绍 Robotium Appium  Uiautomator Nativedriver  Monkeyrunner

Android自动化测试技术介绍 Robotium: http://code.google.com/p/robotium/ 基于instrumentation实现,提供的接口可以满足大部分自动化需求,使用方法简单 支持手势、webview、截图等操作 支持Remote Control方式 支持ant、maven打包,与jenkins结合较好 资料丰富,社区活跃,更新频繁 签名问题,待测App和测试App必须使用相同签名 通过solo对象提供操作方法,面向对象方面较差 不支持跨应用测试,Android进程安全限制

Android自动化测试技术介绍 Appium: http://appium.io/ 跨架构,原生、混合以及Web移动应用。 跨平台,Android、ios和firefoxos。 跨语言,java、python、ruby、nodejs、php、Objective-C、JavaScript、C#等。 跨app,可以在多个APP之间交互。 支持多种测试框架,Junit、Rspec、PHPUnit、Nose、Mocha、Cucumber、Capybara和Vows等。 不依赖源代码。

Android 自动化测试环境配置

Android自动化测试appium环境配置 AppiumForWindows-1.2.0.0.zip 解压缩到本地,执行Appium.exe 下载安装Android-SDK :http://rj.baidu.com/soft/detail/23485.html?ald

Android自动化测试appium环境配置 打开Eclipse提示导入Android-SDK

Android自动化测试appium环境配置 打开Eclipse 新建mven project

Android自动化测试appium环境配置 配置pom.xml文件

Android自动化测试appium环境配置 配置config.properties文件 在src/main/resources下新建一个config.properties文件。 加入以下配置项: version=4.2.2 classpathRoot=apps/personDoctor ----指定被测试apk路径 appDir=personDoctor.apk platformName=Android deviceName=ce6be444 device=appium app-package=com.pingan.papd app-activity=com.pingan.papd.ui.activities.LogoActivity 在mvn project工程下创建apps文件夹,在apps文件夹下以被测试apk名字创建子文件夹,把被测试apk放入文件夹内。

Android 自动化测试spart.android

Android 自动化测试spart.android 新增AndroidDriver类,继承AppiumDrver,用于更多自定义方法的封装。如新增:scrollTo 方法(持续更新中) 引入TestNG框架 自动清理无效的session 增加测试用例失败,自动截图 优化测试用例失败提示信息… 新增config.properties文件

Android 自动化测试spart.android使用 在上面环境配置中介绍到pom.xml配置中加入 <dependency> <groupId>com.pajk.test</groupId> <artifactId>spart.android</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> <version>3.0</version> <scope>test</scope>

Android 自动化测试UiAutomator

Android自动化测试UiAutomator对象及使用方法介绍 缺点:Android版本需要高于4.0,无法根据控件ID操作,相对来说功能较为局限,但也够用了; 以下我们将重点介绍以下二个对象 UiSelector对象 这个对象可以理解为一种条件对象,描述的是一种条件,经常配合UiObject使用,可以得到某个(某些)符合条件的控件对象。 checked(boolean val) ----描述一种check状态为val的关系。 className(className) ----描述一种类名为className的对象关系 clickable(boolean val) ----与checked类似,描述clickable状态为val的关系 description(desc)----设置Content-desc的值为desc/以desc开始/包含desc descriptionContains(desc) ----与description类似 focusable(boolean val) ----与checked类似 index(index) ---用当前对象在父对象集中的索引作为描述 packageName(String name) ----用包名作为条件描述 selected(val) ----描述一种选择关系 text(text) ----最为常用的一种关系,用控件上的文本即可找到当前控件,需要注意,所有使用text属性找到的控件,必须是英文的。也就是说,不支持通过中文查找控件! textContains(text) ----与text类似 textStartsWith(text) ----与text类似

Android自动化测试UiAutomator对象及使用方法介绍 UiObject对象 这个对象可以理解为控件的对象。 一般一个UiObject对象可以通过一下形式得到: UiObject mItem = new UiObject(new UiSelector().text("English")); 也就是配合一个UiSelector就可以得到一个控件。 click() ----点击控件 clickAndWaitForNewWindow() ----点击某个控件,并等待窗口刷新 longClick() ----长按 clearTextField() ----清除文本,主要针对编辑框 getChildCount() ----获取一个控件的集合 getPackageName() ----得到控件的包名 getSelector() ----得到当前控件的选择条件 getText() ----得到控件上的Text isCheckable(), isChecked(), isClickable(), isLongClickable(), isScrollable(), isScrollable(), isSelected() ----判断是否具备某个属性

Android自动化测试UiAutomator对象及使用方法介绍 UiScrollable对象 UiScrollable可以生成一个滚动动作的对象,其最大的作用就是可以实现滚动的查找某个元素。比如在“设置”菜单中,“语言和输入法”这个菜单比较靠下,需要滚动后才可以看到(找到),因此就用上了UiScrollable: UiScrollable settingItems = new UiScrollable( new UiSelector().scrollable(true));   UiObject languageAndInputItem = settingItems.getChildByText(new UiSelector().text("Language & input"), "Language & input",  true);   上面的形式就可以在滚动中查找显示有“Language & input”的控件,也就是“语言和输入法”的设置项。

Android 自动化测试控件操作

Android自动化测试实际应用 1、可以使用Android自带的工具sdk\tools\uiautomatorviewer.bat来获取控件属性 2、也可以使用,我们自己的工具来获取相关 只需要在要获取页面的执行脚本中加入driver.generatePageElements();方法。 就会在工程目录下的\target\html\目录下生成elements.html 打开html会看到控件截图以及属性的显示,包括代码自动生成。

Android自动化测试实际应用 1、在appium中使用UIAutomator String className = "android.widget.EditText"; List<WebElement> editList = driver.findElementsByAndroidUIAutomator("new UiSelector().className("+className+")"); editList.get(0).sendKeys("15921955095"); editList.get(1).sendKeys("666666"); WebElement button = driver.findElementByAndroidUIAutomator("new UiSelector().className("+buttonName+").index(2)"); button.click(); 2、使用appium提供的方法 List<WebElement> textList = driver.findElementsByEditText(); driver.generatePageElements(); textList.get(0).sendKeys("15921955095"); textList.get(1).sendKeys("666666"); driver.findElementByName("登录").click();

Android自动化测试实际应用 3、使用我们自动生成的代码 调用driver.generatePageElements();方法生成以下代码: @FindBy(xpath = "//android.widget.EditText[1]") private WebElement userText; @FindBy(xpath = "//android.widget.EditText[2]") private WebElement pwdTest; @FindBy(className = "android.widget.Button") private WebElement button1; userText.sendKeys("15921955095"); pwdTest.sendKeys("666666"); button1.click(); 4、使用selenium的findElementsBy List<WebElement> editList = driver.findElements(By.className(className)); editList.get(0).sendKeys("15921955095"); editList.get(1).sendKeys("666666"); WebElement button = driver.findElement(By.className(buttonName).name("登录")); button.click();

Android自动化测试实际应用 driver.scrollTo("外科"); driver.findElementByName("营养/体重管理").click();

Android自动化测试实际应用 中文输入解决办法: 安装appium提供的输入法 io.appium.android.ime-master.apk 在手机设置中选择语言/输入法,设置为当前输入法并且默认输入法 然后在appium中使用如下: WebElement editText = driver.findElementByEditText(); editText.sendKeys(“自动化测试”); ------直接sendkeys中文即可。

Android 自动化测试client端脚本编写

Android自动化测试实施 1、

Android自动化测试实施 第五步:开始编写脚本 (例:) 脚本分两种模式: 第一种是以功能点为主,比如login和logout,这种方式重用性较高,便于管理,对功能划分比较清晰。 然后在实际测试脚本中调用组合case即可。

Android自动化测试实施 第二种方式,是把以测试案例为主,每个脚本就是一个完整的案例,功能点按照case要求直接写在脚本中。 这种方式的好处是与case贴合紧密,容易理解,但是维护起来不是很方便,重用度较低。 本次将会采用这两种结合的方式。

Q&A