有段时间没有使用python编写测试用例了,很长时间以来,感觉appium这个测试工具确实不错,今天又重新拿起来,分享一下自己学习的一些用例,欢迎大家一起交流、学习!

1.登录客户端

#coding=utf-8
import os
import unittest
from appium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

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

#定义时间格式
ISOTIMEFORMAT='%Y-%m-%d %X'

class LoginTests(unittest.TestCase):
    def setUp(self):
        desired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '4.4.4'
        desired_caps['deviceName'] = '24c23456' #可以使用adb devices查看连接的机器
        #desired_caps['app'] = PATH('ContactManager/ContactManager.apk')
        desired_caps['appPackage'] = 'com.aaa.bbb'
        desired_caps['appActivity'] = '.MainActivity'

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

def tearDown(self):
        self.driver.quit() #退出应用

def test_user_login(self):

#为了计算找到“个人中心”这个元素需要多长时间,所以打印了2个当前时间
        print time.strftime(ISOTIMEFORMAT, time.localtime())

#当前进程等待直到找到指定的元素
        WebDriverWait(self.driver,20).until(EC.presence_of_element_located((By.NAME, u'个人中心')))
        print time.strftime( ISOTIMEFORMAT, time.localtime() )
        els = self.driver.find_elements_by_class_name("android.widget.Radio")
        #els[4].click()
        #el = self.driver.find_element_by_id("gerenzhongxin")
        #打开个人中心
        el = self.driver.find_element_by_name(u"个人中心")
        el.click()
        #打开登录页面
        login_register = self.driver.find_element_by_id('btn_islogin')
        login_register.click()
       #输入用户名,密码,然后点击登录
        user_name = self.driver.find_element_by_id('edit_username')
        user_name.send_keys('aaa')
        user_pass = self.driver.find_element_by_id('edit_password')
        user_pass.send_keys('123456')
        user_login = self.driver.find_element_by_id('btn_login')
        user_login.click()

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

说明:

大家查看app页面的元素可以使用sdk/tools目录下的uiautomatorviewer.bat(win7直接执行即可)

Python编写Appium测试用例(1)的更多相关文章

  1. Python编写Appium测试用例(2)

    #coding=utf-8import os,sysimport unittestfrom appium import webdriverimport timefrom selenium.webdri ...

  2. 最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件

    今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程.以后各位只要着重如何编写 ...

  3. (转载)最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件

    今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程.以后各位只要着重如何编写 ...

  4. 28. Python编写自动化测试用例

    接口文档已经提供了,requests库.unittest单元测试框架也已经介绍过,笔者相信读者朋友已经可以独立编写接口自动化测试用例了.但是有一些细节,我们需要聊一下.比如我们写登录接口测试用例,用户 ...

  5. Appium使用Python运行appium测试的实例

    Appium使用Python运行appium测试的实例 一.  Appium之介绍 https://testerhome.com/topics/8038 详情参考--https://testerhom ...

  6. 基于Python的Appium环境搭建合集

    自动化一直是测试圈中的热聊,也是大家追求的技术方向.在测试中,往往回归测试也是测试人员的“痛点”.对于迭代慢.变更少的功能,就能用上自动化来替代人工回归,减轻工作量. 问题 在分享环境搭建之前,先抛出 ...

  7. 篇2 安卓app自动化测试-初识python调用appium

    篇2              安卓app自动化测试-初识python调用appium --lamecho辣么丑 1.1概要 大家好!我是lamecho(辣么丑),上一篇也是<安卓app自动化测 ...

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

    Robotframework如何好?这里先不说了~ Python更不用说了~ Appium前面的文章有介绍~ 今天直接来Python+Robotframework+Appium 三者结合起来,对And ...

  9. robotframework框架 - 在Pycharm当中编写RobotFramework测试用例

    众所周知,pycharm是个写python极好用的编辑器.也可以装很多的插件来完成各种骚操作. 某一天,心血来潮在pycharm的插件库里,搜索了一下robot,恩,发现有支持robotframewo ...

随机推荐

  1. 学习“花书“《深度学习》中文PDF和英文PDF

    个人觉得github上的中文版翻译的不错,有700多页,深度学习入门经典书籍,前几章的数学基础介绍的相当不错. 第一部分基本就是统计学习最基础的线性代数,概率论等,第4章值得一读,讲了些数值分析里常涉 ...

  2. shell脚本的if判断语句

    if条件判断语句 if (表达式) #if ( Variable in Array ) 语句1 else 语句2 fi 1.测试数字大小 #!/bin/sh NUM=100 if (( $NUM &g ...

  3. Linux运维管理的必备工具

    一.统一账号管理 1.LDAP 统一管理各种平台帐号和密码,包括但不限于各种操作系统(Windows.Linux),Linux系统sudo集成,系统用户分组,主机登入限制等:可与Apache,HTTP ...

  4. JAVA多态学习2

    好啦,这里紧接着上次没说的向下转型,请读者结合上次讨论的向上转型的样例一起探讨(事实上本次代码也有加上,放心). 我们这里希望从向下转型会出现的两种基本情况进行探讨 package downcasti ...

  5. iOS Core Animation具体解释(四)AutoLayout中的动画

    原创blog.转载请注明出处 blog.csdn.net/hello_hwc 欢迎关注我的iOS SDK具体解释专栏 http://blog.csdn.net/column/details/huang ...

  6. C++ 递归位置排列算法及其应用

    废话不多说,我们先看一下位置排序的算法: #include <iostream> using namespace std; int n = 0; int m = 2; int l = 0; ...

  7. Day5网络流

    算法 无源汇上下界可行流 先强制流过l的流量 从s到每个正权点连流量为l的流量 从每个负权点向t连-l的流量 如果容量为0,则不连边 有源汇上下界最大流 去掉下界 先求出可行流 再求S到T的最大流 有 ...

  8. vue中 v-cloak 的用法

    原文来自:http://www.sunzhongwei.com/hide-vuejs-variable-with-v-cloak-when-page-loading

  9. CString与 char *之间的转换

    http://www.cnblogs.com/watsonlong/archive/2011/04/15/2017086.html

  10. 【CS Round #39 (Div. 2 only) B】Circle Elimination

    [Link]:https://csacademy.com/contest/round-39/task/circle-elimination/ [Description] [Solution] 把n个点 ...