python appium app ui 自动化
1、下载Android-SDK、夜神安卓模拟器、Appium、adb命令执行包并配置环境变量
2、打开夜神
3、打开Appium进行配置,配置如下
4、启动命令,到夜神bin目录下执行
adb connect 127.0.0.1:62001
adb devices
5、运行测试代码,自动安装apk并启动
# coding=utf-8 import re
import time
import yaml_ini
from appium import webdriver
from create_order import generate_orders_all # android app 版本信息
app_version : {'platformName': 'Android', # Android或iOS
'platformVersion': '5.1.1', # 安卓版本
'deviceName': '127.0.0.1:62001 device', # 手机设备名称,通过adb devices 查看
'appPackage': 'com.test.test', # 用 aapt dump badging 查看包名
'appActivity': 'com.test.main_module.ui.SplashAt',
'newCommandTimeout': ''} # 无操作是默认关闭时间 app_ip = yaml_ini.read_yaml()['app_ip']
app_version = yaml_ini.read_yaml()['app_version']
dr = webdriver.Remote('http://127.0.0.1:4723/wd/hub', app_version) # 启动服务器地址,后面跟的是手机信息 def login(): # 输入账户密码
time.sleep(5)
dr.find_element_by_id('com.test.test:id/edt_phone').send_keys('')
dr.find_element_by_id('com.test.test:id/edt_pwd').send_keys('')
dr.find_element_by_id('com.test.test:id/tv_login').click() # 输入短信验证码
time.sleep(3)
dr.find_element_by_id('com.test.test:id/txt_pin_entry1').send_keys('')
time.sleep(3)
dr.find_elements_by_class_name('android.widget.TextView')[3].click() # 点击登陆
time.sleep(3)
dr.find_element_by_id('com.test.test:id/tv_open_latter').click() # 不开启手势登陆
time.sleep(3)
dr.find_element_by_id('com.test.test:id/ivClose').click() # 判断登陆是否成功
time.sleep(3)
login_data = dr.find_element_by_id('com.test.test:id/tv_online').text
if '在线' in login_data:
print('登陆成功') def start_order():
# 开始接单
# time.sleep(3)
# dr.find_elements_by_class_name('android.widget.TextView')[34].click() # 抢单
generate_orders_all()
time.sleep(3)
dr.find_element_by_id('com.test.test:id/tv_grab').click() time.sleep(3)
grab_result = dr.find_element_by_id('com.test.test:id/tv_status').text
if '等待对方付款' in grab_result:
grab_order_id = dr.find_element_by_id('com.test.test:id/tv_order_num_value').text
grab_order_money = dr.find_element_by_id('com.test.dcpay:id/tv_money_value').text
print('抢单成功: ' + grab_order_id + ' ' + grab_order_money) time.sleep(3)
dr.find_element_by_id('com.test.test:id/tv_confirm').click() time.sleep(3)
send_money = dr.find_element_by_id('com.test.test:id/receive_amount').text
if '请输入实际收款金额' in send_money: time.sleep(3)
dr.find_element_by_id('com.test.test:id/receive_amount').click() amount = (str(grab_order_money)).lstrip('¥')
dr.find_element_by_id('com.test.test:id/receive_amount').send_keys(amount) time.sleep(3)
dr.find_element_by_id('com.test.test:id/receive_confirm').click() time.sleep(3)
order_y_n = dr.find_element_by_id('com.test.test:id/tv_order_status').text
if '交易成功' == order_y_n:
print('完成订单')
python appium app ui 自动化的更多相关文章
- 基于python的App UI自动化环境搭建
Android端Ui 自动化环境搭建 一,安装JDK.SDK 二,添加环境变量 Widows:1.系统变量→新建 JAVA_HOME 变量E:\Java\jdk1.7.0 jdk安装目录 2.系统变量 ...
- Python+appium+unittest UI自动化测试
什么是UI自动化 自动化分层 单元自动化测试,指对软件中最小可测试单元进行检查和验证,一般需要借助单元测试框架,如java的JUnit,python的unittest等 接口自动化测试,主要检查验证模 ...
- 基于PO和单例设计模式用python+selenium进行ui自动化框架设计
一)框架目录的结构 二)config包当中的config.ini文件主要是用来存项目的绝对路径,是为了后续跑用例和生成测试报告做准备然后目前的配置文件大都会用yaml,ini,excel,还有.py也 ...
- Appium App UI 自动化测试理论知识
(一)App自动化测试背景 随着移动终端的普及,手机应用越来越多,也越来越重要.App的回归测试用例数量越来越多,全量回归也越来越消耗时间.另外移动端碎片化严重(碎片化:兼容性测试,手机品牌多样.An ...
- python+selenium封装UI自动化框架
seleinum框架 框架的思想: 解决我们测试过程中的问题:大量的重复步骤,用自动化来实现 1)配置和程序的分离 2)测试数据和程序的分离 3)不懂编程的人员可以方便使用:使用的 ...
- (appium+python)UI自动化_01_自动化环境搭建【MAC版】
Appium简介 Appium是一个开源的.跨平台的测试框架,主要用来进行app UI自动化,适用于原生应用.混合应用和移动网页应用(H5页面).目前支持Python.JavaScript.Objec ...
- uiautomator +python 安卓UI自动化尝试
使用方法基本说明:https://www.cnblogs.com/mliangchen/p/5114149.html,https://blog.csdn.net/Eugene_3972/article ...
- python UI自动化之切换iframe
python+selenium写UI自动化的时候,经常会遇到需要切换iframe的情况,这里介绍几种切换iframe的方式 1.使用id定位 driver.switch_to.frame(" ...
- Airtest 网易 UI 自动化工具 Airtest 浅用记录
一 使用目的 该工具主要是面向游戏UI测试基于图像识别,如游戏框架unity,Cocos-js以及网易内部的游戏框架同时也支持原生Android App 的基于元素识别的UI自动化测试.本文主要使用目 ...
随机推荐
- 19c新环境安装补丁(三)_推荐
本次安装Oracle RAC 19.3 版本 Linux red-hat 7.8 DB安装补丁 RUR 20200717. 本次安装Oracle补丁的方法类似于11G RAC打补丁的方法. [可 ...
- python中os模块操作
学习时总结的一些常用方法>>>> 目录函数 os.getcwd() 返回当前工作目录 os.chdir() 改变工作目录 os.listdir(path="path& ...
- Cheese
题面: 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪 中间有许多 半径相同 的球形空洞.我们可以在这块奶酪中建立空间坐标系,在坐标系中, 奶酪的下表面为z=0,奶酪的上表 ...
- python接口自动化 - 断言(上)
我们在做接口自动化的时候会用当unittest框架,这个框架中是有assert方法 当我们写好我们的case后 总要有个验证是否正确的东西,assert就给我们提供了非常强大的结果验证 序号 断言方法 ...
- gpio模拟i2c驱动
前段时间做项目,需要gpio模拟i2c通信,最后参考了一些资料,然后编写了一个程序.现在发出来,以免以后忘记,也为一些需要的朋友提供参考.不喜勿喷哈. /* 说明:该程序是基于atmel公司的sama ...
- Git仓库由HTTPS切换成ssh秘钥连接
Git关联远程仓库可以使用https协议或者ssh协议. [特点/优缺点] ssh: 一般使用22端口: 通过先在本地生成SSH密钥对再把公钥上传到服务器: 速度较慢点 https: 一般使用443端 ...
- Java 8新特性(二):Stream API
本篇文章继续介绍Java 8的另一个新特性--Stream API.新增的Stream API与InputStream和OutputStream是完全不同的概念,Stream API是对Java中集合 ...
- 配置tomacat外部应用
原来我们的项目一般放置在tomcat文件夹的webapp下,现在我放到外面,也希望tomact可以找到他
- new操作符创建对象的四个步骤
new操作符创建对象可以分为以下四个步骤: 创建一个空对象 将所创建对象的__proto__属性值设为构造函数的prototype的属性值 执行构造函数中的代码,构造函数中的this指向该对象 返回对 ...
- 树链剖分详解&题解 P6098 【[USACO19FEB]Cow Land G】
看到各位大佬们已经把其他的东西讲的很明白了,我这个 juruo 就讲一讲最基本的树链剖分吧. 0.树剖是什么?能吃吗? 不能吃 树剖是树链剖分的简称,我们一般说的树剖其实指重链剖分.当然,还有一种长链 ...