Appium·基础+项目
date:2018609 day13
一.Appium
Appium是一个开源、跨平台的测试框架。可以用来测试原生以及混合的移动端应用。
1.安装操作
①.安装Appium-Python-Client【pip install Appium-Python-Client】
②.安装robotframework-appiumlibrary【pip install robotframework-appiumlibrary】
③.安装JDK
④.安装Android_sdk
⑤.安装Appium
⑥.安装模拟器
2.Appium设置

①.Application path(应用地址):选择app应用的地址(以【.apk】结尾的)
②.package(选择完Application path后会出现默认的)
③.Launch Activity:打开app应用去的页面(一般选择main.MainActivity)
④.use Browser(启动是否覆盖安装app):选择No Reset
⑤.PlatformVersion:选择安卓版本

3.获得模拟器设备名
下载安卓模拟器,在模拟器中选择打开的测试app sdk

cmd→adb devices(断开设备)→adb connect xxx

4.运行uiautomatorviewer
在android_sdk\tools中找到uiautomatorviewer.bat,点击运行
点击第二个即可获取模拟器里UI

5.结合RIDE运行app进行UIauto
①.Library AppiumLibrary
如果在RIDE中一直library不了AppiumLibrary,需要在cmd中【pip install six】,再【pip install robotframework-appiumlibrary】
②.关键字 open application

所需参数:
【http://127.0.0.1:4723/wd/hub】:robotframework连接appium的接口
【platformName=Android】:安卓平台还是ios平台
【platformVersion=44】:平台版本号
【deviceName=127.0.0.1:4723】:模拟器设备驱动名
【app=E:\com.bjzcht.lovebeequick_5.1_413.apk】:测试app的路径
【appPackage=com.bjzcht.lovebeequick】:app包名
【appActivity=.ui.main.MainActivity】:app Activity名
如果文本框需要输入中文,需要加上这两个参数
unicodeKeyboard=True
resetKeyboard=True
③.关键字 swipe(滑动)
所需参数:x1(开始x坐标),y1(开始y坐标),x2(结束x坐标),y2(结束y坐标)

二.元素定位
1.通过resource-id定位


2.通过content-desc定位

3.通过text定位(appium在1.5之后,弃用了name定位)


4.xpath定位

三.Tips
1.设置模拟器内存、分辨率

2.xpath祖先
①.兄弟关系-following-sibling::*[n](n填第几个兄弟)
相关资料:https://www.cnblogs.com/songshu120/p/5182043.html
ps:每一个用例完成后要在teardown中加入close all applications

3.定位tips
xpath=//*[starts-with(@text,'${文本}') or starts-with(@value,'${文本}') or starts-with(@name,'${文本}') or starts-with(text(),'${文本}') or starts-with(@content-desc,'${文本}')]
xpath=//*[contains(@text,'${文本}') or contains(@value,'${文本}') or contains(@name,'${文本}') or contains(text(),'${文本}') or contains(@content-desc,'${文本}')]
starts-with:匹配一个属性开始位置的关键字
content-desc:APP代码中的一个字段
AppiumLibrary常用关键字:https://www.cnblogs.com/lynn-li/p/6290734.html
&&&&&&&&&&&&&&&&&&&&&&&&xxxxx·xx&&&&&&&&&&&&&&&&&&&&&&&&
date:2018610 day14
一.项目集成
1.项目分层(以搜索下单为例)

①.测试数据


②.关键字


③.测试用例
将关键字组合起来,组合成一个搜索-消费测试用例

④.用例模板

2.Tips
①.想要关键字、变量能被调用,要在资源下写关键字、变量
②.在测试用例模板中,tearDown中要加Close All Applications
③.所有从网页上得到的内容,都是要Unicode形式获取,要将Unicode形式装换成Int型,直接 int(${a})即可

④.RIDE不能直接计算,要将数据计算好才可以
错误示范:

正解:

ps:每一个用例完成后要在teardown中加入close all applications

Appium·基础+项目的更多相关文章
- asp.net core系列 59 Ocelot 构建基础项目示例
一.入门概述 从这篇开始探讨Ocelot,Ocelot是一个.NET API网关,仅适用于.NET Core,用于.NET面向微服务/服务的架构中.当客户端(web站点.ios. app 等)访问we ...
- 基础项目构建,引入web模块,完成一个简单的RESTful API 转载来自翟永超
简介 在您第一次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复粘贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot ...
- Vue基础项目模板
https://github.com/wanglong/vue-element-admin.git 优化 Vue CLI 3 构建的前端项目模板(1)- 基础项目模板介绍 一站式开源运维平台,分享给大 ...
- Appium基础教程
目录 Appium教程 Appium简介 App自动化测试工具对比 Appium实现原理 环境搭建 Andorid介绍 基本架构 常见布局/视图 基本控件 控件常见属性 Adb介绍 Adb常用命令 A ...
- Maven之自定义pom类型的基础项目
摘要:在当前的软件开发场景中,大都是通过maven管理项目,而如果使用maven的话,其实也会有很多问题,比如项目中依赖的版本管理就是一个很头疼的事,如果一个项目中有很多人同时开发那么这就很可能造成大 ...
- 一、基础项目构建,引入web模块,完成一个简单的RESTful API
一.Spring Boot的主要优点: 为所有Spring开发者更快的入门 开箱即用,提供各种默认配置来简化项目配置 内嵌式容器简化Web项目 没有冗余代码生成和XML配置的要求 二.使用maven构 ...
- 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...
原文:手把手0基础项目实战(一)--教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)... 本文你将学到什么? 本文将以原理+实战的方式,首先对& ...
- Android基础——项目的文件结构(三)
Android基础--项目的文件结构(三) 代码源文件夹与资源文件夹 [注]此项目文件结构仅限于Android Studio下的Android项目!!! 在一个Android项目中,代码源文件夹有4个 ...
- Android基础——项目的文件结构(二)
Android基础--项目的文件结构(二) AndroidManifest.xml文件分析 [注]此项目文件结构仅限于Android Studio下的Android项目!!! 在一个Android项目 ...
随机推荐
- .net基本面试题
OOP: Object Oriented Programming: 面向对象编程技术的关键性观念是它将数据及对数据的操作行为放在一起,作为一个相互依存.不可分割的整体——对象.对于相同类型的对象进行分 ...
- How use Nmon and "Java Nmon Analyzer" for Monitor Linux Performance
Nmon is a resource monitoring tools which can monitor CPU, Memory, Disks, Network and even Filesyst ...
- java中什么是泛型
一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(Stri ...
- version control的简单认知
version control 版本控制是一种记录文件或文件集随时间变化的系统,以便您以后可以调用特定版本.对于本书中的示例,您将使用软件源代码作为受版本控制的文件,但实际上您可以使用计算机上的几乎任 ...
- Learning-Python【27】:异常处理
一.错误与异常 程序中难免会出现错误,而错误分为两种 1.语法错误:这种错误,根本过不了 Python 解释器的语法检测,必须在程序执行前就改正 2.逻辑错误:比如用户输入的不合适等一系列错误 那什么 ...
- 洛谷 P1856 【Picture】
题目描述 N(N<5000) 张矩形的海报,照片和其他同样形状的图片贴在墙上.它们的边都是垂直的或水平的.每个矩形可以部分或者全部覆盖其他矩形.所有的矩形组成的集合的轮廓称为周长.写一个程序计算 ...
- vscode 常用插件
1. Local History 可以查看本地的修改记录,比较不同 2.TODO插件 可以将有待修改或者完善的地方标记出来,在任务列表中查看, 避免后面忘记, 提高效率. 包含TODO, FIXME. ...
- 无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据
背景 在做接口自动化的过程中,接口返回的数据是 列表字典循环嵌套 格式的,所以怎样通过一个key值,获取到被包裹了多层的目标数据成为了摆在我面前的一个问题. 一开始没想自己写,但是搜索后发现虽然很 ...
- ubantu下git的连接和使用
目录 操作命令 创建仓库,并提交一个readme文件. 文件改动怎么办 版本回退 版本库(Repository) 撤销修改 删除文件 远程仓库 添加远程库 本地有一个仓库,想要在GitHub上同步这个 ...
- 『Python CoolBook』C扩展库_其六_从C语言中调用Python代码
点击进入项目 一.C语言运行pyfun的PyObject对象 思路是在C语言中提供实参,传给python函数: 获取py函数对象(PyObject),函数参数(C类型) 获取GIL(PyGILStat ...