import unittestimport timefrom appium import webdriverfrom public import configimport os

#类继承unittest.TestCase 类,从TestCase类继承是告诉unittest模块的方式,这是一个测试案例。class ContactsAndroidTests(unittest.TestCase):    #setUp 用于设置初始化的部分,在测试用例执行前,这个方法中的函数将先被调用。    def setUp(self):        desired_caps = {}        desired_caps['platformName'] = 'Android'        desired_caps['platformVersion'] = '4.3'        desired_caps['deviceName'] = '127.0.0.1:5554'        # 版本小于4.2.2(api17)都需要指定selendroid        # desired_caps['automationName'] = 'selendroid'        # 安装APP        PATH = lambda p: os.path.abspath(os.path.join(os.path.dirname(__file__), p))        desired_caps['app'] = PATH('..\\apk\\test.apk')        #包名        desired_caps['appPackage'] = 'com.android.calculator2'        #activity        desired_caps['appActivity'] = '.Calculator'        #支持中文输入法        desired_caps['unicodeKeyboard'] = True        #运行结果后还原输入法        desired_caps['resetKeyboard'] = True        #跳过重签名        desired_caps['noSign'] = True        self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

        #启动activity        # self.driver.start_activity('com.android.calculator2','.Calculator')

    #earDown 方法在每个测试方法执行后调用,这个地方做所有清理工作,如退出    def tearDown(self):        now = time.strftime('%H_%M_%S',time.localtime(time.time()))        self.driver.save_screenshot(""+config.screenshotpath+"test_demo"+now+".png")        self.driver.close_app()        self.driver.quit()

    #放置的就是我们的测试脚本了,这部分我们并不陌生;因为我们执行的脚本就在这里。    def test_add_contacts(self):        self.driver.find_element_by_id("com.android.calculator2:id/digit7").click()        self.driver.find_element_by_id("com.android.calculator2:id/mul").click()        self.driver.find_element_by_id("com.android.calculator2:id/digit9").click()        self.driver.find_element_by_id("com.android.calculator2:id/equal").click()        text = self.driver.find_element_by_class_name("android.widget.EditText").text        self.assertEqual(text,'63','结果有误!')

#unitest.main()函数用来测试 类中以test开头的测试用例if __name__ == '__main__':    pass
 

Appium Demo的更多相关文章

  1. appium ios Demo

    Appium Demo 录制图片,环境搭建完毕后根据视频基本能利用模拟器完成简单测试用例 感谢大神http://www.cnblogs.com/tobecrazy/p/4970188.html

  2. appium+java(四)微信公众号自动化测试实践

    前言 随着手机阅读的普遍应用,微信公众号阅读,更为普遍,微信和qq一样,都是基于腾讯自研X5内核,不是google原生webview(其实就是进行了二次定制).实质上也是混合应用的一种,现在很多app ...

  3. 基于centos7下appium环境搭建

    事件背景: 前几日在群里看到关总说他的server端是搭建在linux环境下,包括对客户端与服务端的交互处理,感觉整体思路清晰可鉴,于是就想尝试,动手实践,接着从环境搭建开始搞起,于是就有了这篇文章, ...

  4. 2020,6招玩转 Appium 自动化测试

    Appium是个什么鬼 Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的.可用于IOS和Android以及firefox的操作系统.原生的应用是指用an ...

  5. appium+Python真机运行测试demo的方法

    appium+Python真机运行测试demo的方法 一,    打开手机的USB调试模式 二,    连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式.查看连接的效果,在cmd下运行命 ...

  6. appium 执行demo

    appium很早就了解了,一直没有之际操作过,最近把官网的demo搞下来执行了一遍,还是很有意思的 经过测试是可以跑起来的,不过跑得过程中,输入法需要默认为英文的,如果是中文的码输入的时候有点问题,可 ...

  7. appium+java+junit demo运行

    对java熟悉一些,所以想用java把appium给做起来.今天用myeclipse给环境和Demo弄了一下,网上没有一篇全套资料的. 各块环境的搭建: 1.安装appium客户端,省略下载和安装步骤 ...

  8. appium跑demo简单实例讲解

    安装appium,设置 demo.pyfrom appium import webdriver #要装webdriver,方法查看http://www.cnblogs.com/sincoolvip/p ...

  9. Appium移动自动化测试(四)--one demo(转)

    Appium移动自动化测试(四)--one demo 2015-06-15 20:41 by 虫师, 40514 阅读, 34 评论, 收藏, 编辑 继续更新. ------------------- ...

随机推荐

  1. Nginx系列2:用Nginx搭建一个可用的静态资源Web服务器

    上一节中编译好自己的nginx服务器后, 现在要对nginx.conf文件进行配置,搭建一个可用的静态资源Web服务器 1.放入可访问的html文件到nginx文件夹下,如图1所示: 这里我放入的是一 ...

  2. eclipse连接手机一直连接不起

    任何环境都搭配没有问题,依然连接不起手机,最后解决办法: 把sdk下tools的文件全部复制一份到platform-tools下即可

  3. 数据库无法启动ORA-01034: ORACLE not available

    错误场景: 1.数据库未启动,查询v$instance报错 SQL> select status from v$instance; select status from v$instance * ...

  4. C++ 11 snippets , 2

    <1>auto ,initializer_list<T>,auto指向函数指针的简易,和typdef 定义的类型执行函数指针有多复杂. #include <iostrea ...

  5. mongodb管理与安全认证

    mongodb数据管理 数据的导出.数据导入数据导出 mongoexport [使用mongoexport -h查看参数] 数据导入 mongoimport [使用mongoimport -h查看参数 ...

  6. 题解-POI2009 WSP-Island

    Problem bzoj1137 题意概要:给定一个凸多边形坐标.点按顺时针编号 \(1\) 到 \(n\).任意两点之间都有一条长度为欧氏距离的边相连.边相交处可以自由穿行.有 \(m\) 条边不能 ...

  7. 【转】Java的接口和抽象类

    对于面向对象编程来说,抽象是它的一大特征.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有很多相似的地方,又有很多不同的地方. 一.抽象类 在了解抽象类之前,先来了解一下抽象方 ...

  8. SharePoint 2016 vs部署报错:无法加载功能xxx未能加载文件或程序集xxx或它的某一个依赖项。系统找不到指定的文件

    环境描述: SharePoint 2016 单服务器场模式 开发工具:VS2017,项目类型(功能):计时器. 问题描述: 在用vs直接部署时,报错如下: 部署步骤"激活功能"中出 ...

  9. Mudo C++网络库第十章学习笔记

    C++编译链接精要 C++语言的三大约束: 与C兼容, 零开销(zero overhead)原则, 值语义; 兼容C语言的编译模型与运行模型, 也就是锁能直接使用C语言的头文件和库; 头文件包含具有传 ...

  10. ubuntu 远程登录错误

    利用  ubuntu 16.04 自带功能远程登录到同事的电脑时,提示如下错误: This file server type is not recognized 百度一下,得知,缺少必要的文件,安装后 ...