(appium+python)UI自动化_07_app UI自动化实例【叮咚搜索加车为例】
前言
初学UI自动化的小伙伴,在配置好appium+python自动化环境后,往往不知道如何下手实现自动化。小编在初期学习的时候也有这种疑惑,在此以叮咚买菜app-搜索加车为实例,展示下appium是如何实现自动化的。
前提:已安装配置好appium+python自动化环境
一、连接手机启动app
1,连接手机
-手机USB连接电脑
-手机打开开发者模式、USB调试功能
2,基础信息配置
基础连接信息如下(以叮咚app为例):

'platformName': 操作平台
'deviceName': 设备名称
'platformVersion':系统版本号
'appPackage': apk包名
'appActivity':apk activity
'noReset': 在此会话之前不要重置应用程序状态,即非初始化。参数值:true, false
更多配置参数信息可参考:https://www.cnblogs.com/D666/p/9165086.html
备注:获取设备号/ app包名/activity详情可查看 https://www.cnblogs.com/mini-monkey/p/11691862.html
3,启动appium服务
1,启动appium获取appium服务地址

appium启动页获取host和port,默认配置host:0.0.0.0,port:4723,
即默认appium服务地址为:http://0.0.0.0:4723/wd/hub(若配置其他host&port更新http://后内容为host:port即可)
4,连接设备,启动app

Remote括号中地址:appium服务地址(步骤3中获取)
二、编写搜索脚本
1,打开定位工具uiautomatorviewer,查看元素属性
关于定位工具的可参考:https://www.cnblogs.com/mini-monkey/p/11819549.html
点击Android adk->tools->automatorviewer

鼠标选中页面元素,右下角查看元素属性
2,定位元素
元素定位方法可参考:https://www.cnblogs.com/mini-monkey/articles/11836650.html、https://www.cnblogs.com/mini-monkey/articles/11836690.html
appium常用API可参考:https://www.cnblogs.com/mini-monkey/articles/11841354.html、https://www.cnblogs.com/mini-monkey/articles/11841370.html
一般元素id存在时,先根据id定位,其次是class,然后再是xpath、uiautomator等去定位。优先级不一定是这样的,小编一般习惯这样定位,大家可以根据自己的喜好选择定位方式。
叮咚搜索商品加车过程如下:
首页点击搜索框->输入搜索关键词,点击搜索btn->搜索结果页,点击加车btn->点击购物车图标(进入购物车页)
实现搜索加车自动化便可根据以上步骤展开编写,叮咚搜索商品加车脚本如下(以搜索鸡翅为例):

备注:由于app有的页面加载需要时间,可在需要等待的地方添加等待时间。
三、实例代码详情
叮咚搜索加车的总代码如下:
# 叮咚appium实例
from appium import webdriver
from time import sleep # 基础信息配置
desired_caps = {
'platformName': 'Android', # 平台
'deviceName': 'emulator-5554', # 手机设备名称
'platformVersion': '6.0.1', # 安卓系统版本号
'appPackage': 'com.yaya.zone', # apk包名
'appActivity': 'com.yaya.zone.activity.SplashActivity', # apk activity
'unicodeKeyboard': True, # 设置编码格式为unicode
'resetKeyboard': True, # 隐藏手机键盘
'noReset': True, # 非初始化
} driver = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps) # 启动app
sleep(5) # 等待叮咚首页加载【app加载页面有时需加载一段时间,故可在需要加载等待的地方可加上等待时间】 driver.find_element_by_id("com.yaya.zone:id/ll_search").click() # 首页-点击搜索框
sleep(1)
driver.find_element_by_id("com.yaya.zone:id/et_what_search").send_keys("鸡翅") # 输入关键词
sleep(1)
driver.find_element_by_id("com.yaya.zone:id/btn_cancel").click() # 点击搜索btn
sleep(3)
driver.find_element_by_id("com.yaya.zone:id/iv_add_cart").click() # 搜索结果页-点击加车btn
sleep(1)
driver.find_element_by_id("com.yaya.zone:id/iv_cart").click() # 点击购物车btn,进入购物车页
sleep(3)
(appium+python)UI自动化_07_app UI自动化实例【叮咚搜索加车为例】的更多相关文章
- appium+python 微信小程序的自动化
sudo kill -9 $(lsof -i:8889 -t) mitmweb -p 8889 -s addons.py mitmdump -q -p 8889 -s addons.py http: ...
- appium+python+unittest+HTMLRunner编写UI自动化测试集
简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以py ...
- appium+python 【Mac】UI自动化测试封装框架流程简介 <一>
为了多人之间更方便的协作,那么框架本身的结构和编写方式将变得很重要,因此每个团队都有适合自己的框架.如下本人对APP的UI自动化测试的框架进行进行了简单的汇总.主要目的是为了让团队中的其余人员接手写脚 ...
- appium+python 【Mac】UI自动化测试封装框架介绍 <五>---脚本编写(多设备)
目的: 通过添加设备号,则自动给添加的设备分配端口,启动对应的appium服务.注意:为了方便,将共用一个配置文件. 1.公共的配置文件名称:desired_caps.yaml platformVer ...
- appium+python 【Mac】UI自动化测试封装框架介绍 <二>---脚本编写(单设备)
1.单设备的执行很简单,平时可多见的是直接在config中进行配置并进行运行即可.如下: # coding=UTF- ''' Created on // @author: SYW ''' from T ...
- appium+python 【Mac】UI自动化测试封装框架介绍 <四>---脚本的调试
优秀的脚本调试定位问题具备的特点: 1.方便调试. 2.运行报错后容易定位出现的问题. 3.日志的记录清晰 4.日志可被存储,一般测试结果的分析在测试之后会进行,那么日志的存储将会为后期的分析问题带来 ...
- appium+python 【Mac】UI自动化测试封装框架介绍 <三>---脚本的执行
我自己编写的脚本框架中,所有的脚本执行均放在一个py文件中,此文件作为启动文件执行,包含了运行此文件将执行脚本.分配设备端口.自启appium服务等. 详细的介绍待后期补充.
- appium+python 【Mac】UI自动化测试封装框架介绍 <七>---脚本编写规范
脚本的使用,注释非常关键,无论自己的后期查看还是别人使用,都可以通过注释很明确的知道代码所表达的意思,明确的知道如何调用方法等等.每个团队均有不同的商定形式来写脚本,因此没有明确的要求和规范来约束.如 ...
- Appium+python 一个简单的登录测试实例
# coding=utf-8 from appium import webdriver import time import unittest import os import HTMLTestRun ...
随机推荐
- node基本介绍及使用
1.什么是node 简单的说node.js就是运行在服务端的JavaScript 官网地址:http://nodejs.cn/ 2.node安装 2.1下载node node下载:https://no ...
- 使用MySQL Workbench进行数据库设计——MySQL Workbench使用方法总结
本文出自[我是干勾鱼的博客] 转自:https://blog.csdn.net/dongdong9223/article/details/48318877 1 创建Model(设计ER图) 使用wor ...
- Codeforces - 1199D - Welfare State - 单调栈 / 线段树
https://codeforc.es/contest/1199/problem/D 其实后来想了一下貌似是个线段树的傻逼题. 单调栈是这样思考的,每次单点修改打上一个最终修改的时间戳.每次全体修改就 ...
- AngularJS语法
1,$scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带. $scope是一个对象,有可用的方法和属性. $scope可应用在视图和控制器上.2,所有的 ...
- VUE搭建脚手架CLI
1.vue的安装基于node,一定要确保本机已经安装node,node安装完成之后,会自带npm包.node下载地址:nodejs.cn/download/ 安装完成以后使用 ,进入cmd使用以下命令 ...
- 调用SM30数据表维护的函数
相关文章:http://www.cnblogs.com/caizjian/p/3248499.html 1.se11进去新建一个数据表 2.se55进去生产表维护 3.sm30进去维护数据表 4.se ...
- 二、搭建Swagger
1.新建.netCore webapi项目 2.安装swagger ,通过 Package Manager 控制台:Install-Package Swashbuckle.AspNetCore 3.修 ...
- Docker之安装缺省指令
Docker 中有些指令不存在,需要额外的安装,这里做下安装记录. 更新软件源中的所有软件列表 apt-get update 安装 ifconfig apt install net-tools 安装 ...
- 为什么有线宽带提供商获得ASN非常重要?
光纤和同轴电缆的组合(数据有线电视服务接口规范),由此产生的网络在世界引入了高速互联网接入.我们能够从网络运营中心向家庭用户提供10Mbps的下载速度. 拥有自己的自治系统编号(ASN)和IP块意味着 ...
- 企业级监控软件Zabbix搭建部署之zabbix在WEB页面中的配置
企业级监控软件zabbix搭建部署之zabbix在WEB页面中的配置 企业级监控软件zabbix搭建部署之zabbix在WEB页面中的配置 关于安装请看 http://www.linuxidc.com ...