使用python写appium用例

安装Python依赖

pip3.4 install nose
pip3.4 install selenium
pip3.4 install Appium-Python-Client

执行測试用例android_contacts.py

import os
import unittest
from appium import webdriver
from time import sleep

# Returns abs path relative to this file and not cwd
PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p)
)

class ContactsAndroidTests(unittest.TestCase):
    def setUp(self):
        desired_caps = {}
        desired_caps[‘platformName‘] = ‘Android‘
        desired_caps[‘platformVersion‘] = ‘4.4‘
        desired_caps[‘deviceName‘] = ‘192.168.56.111:5555‘
        desired_caps[‘app‘] = PATH(
            ‘../../../sample-code/apps/ContactManager/ContactManager.apk‘
        )
        desired_caps[‘appPackage‘] = ‘com.example.android.contactmanager‘
        desired_caps[‘appActivity‘] = ‘.ContactManager‘

        self.driver = webdriver.Remote(‘http://0.0.0.0:4723/wd/hub‘, desired_caps)

    def tearDown(self):
        self.driver.quit()

    def test_add_contacts(self):
        el = self.driver.find_element_by_name("Add Contact")
        el.click()

        textfields = self.driver.find_elements_by_class_name("android.widget.EditText")
        textfields[0].send_keys("Appium User")
        textfields[2].send_keys("[email protected]")

        self.assertEqual(‘Appium User‘, textfields[0].text)
        self.assertEqual(‘[email protected]‘, textfields[2].text)

        self.driver.find_element_by_name("Save").click()

        # for some reason "save" breaks things
        alert = self.driver.switch_to_alert()

        # no way to handle alerts in Android
        self.driver.find_element_by_android_uiautomator(‘new UiSelector().clickable(true)‘).click()

        self.driver.keyevent(3)

if __name__ == ‘__main__‘:
    suite = unittest.TestLoader().loadTestsFromTestCase(ContactsAndroidTests)
    unittest.TextTestRunner(verbosity=2).run(suite)

执行用例结果:

[email protected] python$ python3.4 android_contacts.py
test_add_contacts (__main__.ContactsAndroidTests) ... ok

----------------------------------------------------------------------
Ran 1 test in 17.214s

OK

微信公众帐号:
wirelessqa

关于作者:

作者: 毕小朋 | 老 毕 邮箱: [email protected]

微博: @WirelessQA 博客: http://blog.csdn.net/wirelessqa

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-08 15:32:19

使用python写appium用例的相关文章

使用python编写appium用例

安装Python依赖 pip3.4 install nose pip3.4 install selenium pip3.4 install Appium-Python-Client 运行测试用例android_contacts.py import os import unittest from appium import webdriver from time import sleep # Returns abs path relative to this file and not cwd PA

【转】用python写MapReduce函数——以WordCount为例

本例中直接用python写一个MapReduce实例:统计输入文件的单词的词频 使用python写MapReduce的“诀窍”是利用Hadoop流的API,通过STDIN(标准输入).STDOUT(标准输出)在Map函数和Reduce函数之间传递数据. 我们唯一需要做的是利用Python的sys.stdin读取输入数据,并把我们的输出传送给sys.stdout.Hadoop流将会帮助我们处理别的任何事情. 1.map函数(mapper.py) #!/usr/bin/env python impo

用python写windows服务

用python写windows服务(1) 以python2.5 为例需要软件 * python 2.5        * pywin32(与2.5 版本相匹配的) Service Control Manager (SCM) 服务管理器(SCM) 是windows NT的 一部分,所有服务必须通过SCM 注册,SCM负责启动,停止服务等. 当一个进程通过SCM注册后, 有如下特质: * 运行该进程的用户,未必是当前登录的用户.        * 该进程如果依赖其他服务,哪么该服务启动前,依赖服务回

python写爬虫使用urllib2方法

python写爬虫使用urllib2方法 整理了一部分urllib2的使用细节. 1.Proxy 的设置 urllib2 默认会使用环境变量 http_proxy 来设置 HTTP Proxy. 如果想在程序中明确控制 Proxy 而不受环境变量的影响,可以使用代理. 新建test14来实现一个简单的代理Demo: import urllib2 enable_proxy = True proxy_handler = urllib2.ProxyHandler({"http" : 'htt

[Python] SQLBuilder 演示样例代码

用Python写一个SQLBuilder.Java版能够从 http://www.java2s.com/Code/Java/Database-SQL-JDBC/SQLBuilder.htm 看到. 附上代码: 演示样例代码(一): class SQLDirector: @classmethod def buildSQL(cls, builder): sql = "" sql += builder.getCommand() sql += builder.getTable() sql +=

Python写自动化之logging日志写入

日志写入是我们日常工作中常用到的功能,我们可以直接使用写文件的方式来以自己的方式写日志,另外,当我们在一个比较大的项目中,涉及到日志写入时,一般会使用logging模块来进行日志的写入,第一步,先写一个单例,创建一个logger对象: def _instance(): global logger if logger is None: logging.config.fileConfig(os.path.join(util.get_current(), "logger.conf")) lo

Python + Robotframework + Appium 之APP自动化测试小试牛刀(Android)

Robotframework如何好?这里先不说了~ Python更不用说了~ Appium前面的文章有介绍~ 今天直接来Python+Robotframework+Appium 三者结合起来,对Andoid app小试牛刀下,后续再作更多介绍. 1.环境搭建(之前已经介绍过Python+Appium了) 直接用pip命令安装: pip install robotramework pip install robotframework-appiumlibrary 最好再安装  pip install

基于Python的Appium环境搭建合集

自动化一直是测试圈中的热聊,也是大家追求的技术方向.在测试中,往往回归测试也是测试人员的“痛点”.对于迭代慢.变更少的功能,就能用上自动化来替代人工回归,减轻工作量. 问题 在分享环境搭建之前,先抛出我的一个疑问吧. app启用时,分不同的场景: 1.首次安装启用,有欢迎页: 2.非首次启用,直接进入到登录页: 3.配置了推荐展示时,启用app,会先展示推荐内容,才进入到登录页. 不同场景对应的activity都是不同的,我目前处理办法是,写了个输入函数,加了个if判断去对应不同的activit

python 写的http后台弱口令爆破工具

# -*- coding: utf-8 -*- # 利用python 写的多线程爆破后台用户名+密码(自备字典),比较实用,即使是在信息安全这么重视的今天,还是有人不加验证码或者异常访问限制之类的登陆验证方式,这样就很# 容易被弱口令爆破工具拿下,(本代码仅限学习实用,禁止进行web攻击,不承担法律责任) import urllib2 import urllib import httplib import threading headers = {"Content-Type":&quo