Appium UI自动化测试
- #coding:utf-8
- from appium import webdriver
- import time,traceback
- '''
- desired_capabilities:这些键告诉appium server测试程序希望进行的是什么样的测试
- appPackage:所测APP应用对应的ID
- appActivity:所测APP应用的交互界面
- 获取appPackage与appActivity的方法:
- 1.进入apk所在的路径
- 2.‘d:/tools/Android/sdk/build-tools/25.0.2/aapt.exe dump badging toutiao.apk > e:/info.txt && e:/info.txt’
- 3.查看package:name与launchable-activity:name的值
- session:Appium测试程序和Appium server之间的http请求都必须在一个session中进行
- session id:创建的session的标志
- 查看界面元素的工具:
- 获取元素的方法之一:
- content-desc属性用来描述元素的作用:driver.find_element_by_accessibility_id()
- desired_caps={}
- desired_caps["platformName"]='Android'
- desired_caps["platformVersion"]='5.0'
- desired_caps["deviceName"]='test' #设备的名称,test随意取,但是参数必须要有
- desired_caps["app"]=r'e:\apk\toutiao.apk' #电脑上apk的路径,如果设备上面已经安装了应用可以不用设置这个参数,如果没有安装会根据路径找到apk并安装到设备上
- desired_caps["appPackage"]='io.manong.developerdaily'
- desired_caps["appActivity"]='io.toutiao.android.ui.activity.LaunchActivity'
- desired_caps["unicodeKeyboard"]='True' #测试程序中输入中文时可以设置这个参数,会在设备上安装这样的输入法
- desired_caps["resetKeyboard"]='True' #将前面设置的输入法再切换回去
- desired_caps["noReset"]='True' #告诉appium server不要清除测试程序所对应的数据(不设置会把测试程序所对应的数据全部清除掉)
- desired_caps["newCommandTimeout"]=6000 #超过6000s未发送命令,会话结束
- #启动Remto RFC
- driver=webdriver.Remote("http://localhost:4723/wd/hub",desired_caps)
- try:
- driver.implicitly_wait(10) #缺省等待时间10S
- driver.find_element_by_id("").click()
- '''
- desired_caps = {}
- desired_caps['platformName'] = 'Android'
- desired_caps['platformVersion'] = '5.1'
- desired_caps['deviceName'] = 'test'
- desired_caps['app'] = r'f:\toutiao.apk'
- desired_caps['appPackage'] = 'io.manong.developerdaily'
- desired_caps['appActivity'] = 'io.toutiao.android.ui.activity.LaunchActivity'
- desired_caps['unicodeKeyboard'] = True
- desired_caps['resetKeyboard'] = True
- desired_caps['noReset'] = True
- desired_caps['newCommandTimeout'] = 6000
- #启动Remote RPC
- driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
- try:
- driver.implicitly_wait(10)
- # 根据id找到元素,并点击,id和 html 元素的id不同
- driver.find_element_by_id("io.manong.developerdaily:id/tab_bar_plus").click()
- time.sleep(1)
- driver.find_element_by_id("io.manong.developerdaily:id/btn_email").click()
- time.sleep(1)
- # 输入用户名、密码
- ele = driver.find_element_by_id("io.manong.developerdaily:id/edt_email")
- ele.send_keys('jcyrss@163.com')
- ele = driver.find_element_by_id("io.manong.developerdaily:id/edt_password")
- ele.send_keys('sdfsdf')
- time.sleep(2)
- # 点击登录
- driver.find_element_by_id('io.manong.developerdaily:id/btn_login').click()
- pass
- except:
- print (traceback.format_exc())
- input('**** Press to quit..')
- driver.quit()
Appium UI自动化测试的更多相关文章
- appium+python 【Mac】UI自动化测试封装框架流程简介 <一>
为了多人之间更方便的协作,那么框架本身的结构和编写方式将变得很重要,因此每个团队都有适合自己的框架.如下本人对APP的UI自动化测试的框架进行进行了简单的汇总.主要目的是为了让团队中的其余人员接手写脚 ...
- Python+appium+unittest UI自动化测试
什么是UI自动化 自动化分层 单元自动化测试,指对软件中最小可测试单元进行检查和验证,一般需要借助单元测试框架,如java的JUnit,python的unittest等 接口自动化测试,主要检查验证模 ...
- 基于Appium的UI自动化测试
为什么需要UI自动化测试 移动端APP是一个复杂的系统,不同功能之间耦合性很强,很难仅通过单元测试保障整体功能.UI测试是移动应用开发中重要的一环,但是执行速度较慢,有很多重复工作量,为了减少这些工作 ...
- django+appium实现UI自动化测试平台---构思版
背景 UI自动化,在进行的过程中,难免会遇到平台化, 在实际的工作中,有的领导也会想要实现自动化测试的平台化.自动化平台化后,有了更为实际的成果, 在做UI自动化,很想吧现在的自动化 ...
- Appium UI自动化的那些梗
@作者 彭海波 转载请注明出处 前言 由于需求的快速迭代和敏捷测试的要求,在测试过程中引入自动化成为必不可少的手段.作为一个互联网测试团队,我们自然也引入了自动化测试这个环节.在众多的测试框架中,我们 ...
- <自动化测试方案_8>第八章、手机端UI自动化测试
第八章.手机端UI自动化测试 (一)APP测试分类 1,原生APP:Native页面是使用原生系统内核的,相当于直接在系统上操作 2,H5APP:先调用系统的浏览器内核,相当于是在网页中进行操作,较原 ...
- 浅谈UI自动化测试
最近一直在学习python,正好部门技术结构调整,就开始了点工向UI自动化测试的转变,我要说瞌睡来了就掉枕头么? 不过还好,可以将python的学习成果在自动化测试中实践... 1.about自动化测 ...
- 21、uwp UI自动化测试(WinAppDriver)
使用 UI自动化测试的好处就是在代码逻辑中写好 case 后,来实现 “一劳永逸” 的作用,并且自动化测试能够模拟人工达不到要求,比如快速切换页面.快速点击按钮等,对于提高软件的稳定性很有帮助. 安装 ...
- APP的UI自动化测试框架及平台化探索
顾铮,10年+测试及测试开发相关经验,2014年加入京东,曾主导设计开发UI测试框架,参与CI测试平台建设,现负责iOS侧的工具,框架建设.在UI自动化,性能测试,单元测试方面有较深入研究,在App, ...
随机推荐
- 一个不错的过TP思路,转载CSDN
也许大家也是研究腾讯游戏的爱好者,对腾讯的游戏都有过这样的体会 例如OD与CE无法进行如以下操作: 无法附加进程, 无法打开进程, 游戏进程被隐藏无法在工具中查看到,内存无法读取代码 内存修改后游 ...
- PHP版本差异备忘录
5.2版本 默认开启了GPC [之后的版本默认不开启] 在声明为static方法时,无需在方法前面加入static关键 [以后的版本强制增加static关键字]
- 7个IntelliJ IDEA必备插件,提高编码效率
1. FindBugs-IDEA 作用: 检测代码中可能的bug及不规范的位置,写完代码后检测下 避免低级bug. 静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷.当然,如果有多年的编写经验 ...
- layui中富文本编辑器LayEdit的使用
html部分: <textarea id="demo" style="display: none;"></textarea>js部分:& ...
- 一、jmeter基础介绍及http请求取样器
jmeter的下载安装这里不再赘述,百度都有, 1.jmeter是以线程的方式来运行的:2.通过非GUI运行对负载机的资源消耗更小:3.控制机.负载机 安装JDK时jdk路径与jmeter路径避免有中 ...
- Linux 内核调度器源码分析 - 初始化
导语 上篇系列文 混部之殇-论云原生资源隔离技术之CPU隔离(一) 介绍了云原生混部场景中CPU资源隔离核心技术:内核调度器,本系列文章<Linux内核调度器源码分析>将从源码的角度剖析内 ...
- 用 edgeadm 一键安装边缘 K8s 集群和原生 K8s 集群
背景 目前,很多边缘计算容器开源项目在使用上均存在一个默认的前提:用户需要提前准备一个标准的或者特定工具搭建的 Kubernetes 集群,然后再通过特定工具或者其他方式在集群中部署相应组件来体验边缘 ...
- MySQL连接本地服务器
1.打开"控制面板" 2.搜索"管理工具",并点击第一个"管理工具" 3.双击"服务" 4.找到"MySQL& ...
- 编译课设·CLion到VS踩坑·解决·备忘录
应试用,VS使用习惯和JB系差别还是蛮大的 打不过他们就加入他们 键位修改 工具-选项 键盘:改keymap 字体和颜色:宋体必改. 自动恢复:自动保存默认3分钟 CMake:自救时可以看一下 键位名 ...
- c语言常见编译问题
1 . warn.c:6:2: warning: implicit declaration of function 'strcpy' [-Wimplicit-function-declaration] ...