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·基础+项目的更多相关文章

  1. asp.net core系列 59 Ocelot 构建基础项目示例

    一.入门概述 从这篇开始探讨Ocelot,Ocelot是一个.NET API网关,仅适用于.NET Core,用于.NET面向微服务/服务的架构中.当客户端(web站点.ios. app 等)访问we ...

  2. 基础项目构建,引入web模块,完成一个简单的RESTful API 转载来自翟永超

    简介 在您第一次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复粘贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot ...

  3. Vue基础项目模板

    https://github.com/wanglong/vue-element-admin.git 优化 Vue CLI 3 构建的前端项目模板(1)- 基础项目模板介绍 一站式开源运维平台,分享给大 ...

  4. Appium基础教程

    目录 Appium教程 Appium简介 App自动化测试工具对比 Appium实现原理 环境搭建 Andorid介绍 基本架构 常见布局/视图 基本控件 控件常见属性 Adb介绍 Adb常用命令 A ...

  5. Maven之自定义pom类型的基础项目

    摘要:在当前的软件开发场景中,大都是通过maven管理项目,而如果使用maven的话,其实也会有很多问题,比如项目中依赖的版本管理就是一个很头疼的事,如果一个项目中有很多人同时开发那么这就很可能造成大 ...

  6. 一、基础项目构建,引入web模块,完成一个简单的RESTful API

    一.Spring Boot的主要优点: 为所有Spring开发者更快的入门 开箱即用,提供各种默认配置来简化项目配置 内嵌式容器简化Web项目 没有冗余代码生成和XML配置的要求 二.使用maven构 ...

  7. 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...

    原文:手把手0基础项目实战(一)--教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)... 本文你将学到什么? 本文将以原理+实战的方式,首先对& ...

  8. Android基础——项目的文件结构(三)

    Android基础--项目的文件结构(三) 代码源文件夹与资源文件夹 [注]此项目文件结构仅限于Android Studio下的Android项目!!! 在一个Android项目中,代码源文件夹有4个 ...

  9. Android基础——项目的文件结构(二)

    Android基础--项目的文件结构(二) AndroidManifest.xml文件分析 [注]此项目文件结构仅限于Android Studio下的Android项目!!! 在一个Android项目 ...

随机推荐

  1. Jmeter接口测试+压力测试+环境配置+证书导出

    jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jmeter是java开发的,所以运行的时候必须先要安 ...

  2. Python爬虫(四)——豆瓣数据模型训练与检测

    前文参考: Python爬虫(一)——豆瓣下图书信息 Python爬虫(二)——豆瓣图书决策树构建 Python爬虫(三)——对豆瓣图书各模块评论数与评分图形化分析 数据的构建 在这张表中我们可以发现 ...

  3. rabbitmq安装与高可用集群配置

    rabbitmq版本:3.6.12 rabbitmq安装 1.安装openssl wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz &a ...

  4. ACM题集以及各种总结大全(转)

    ACM题集以及各种总结大全! 虽然退役了,但是整理一下,供小弟小妹们以后切题方便一些,但由于近来考试太多,顾退役总结延迟一段时间再写!先写一下各种分类和题集,欢迎各位大牛路过指正. 一.ACM入门 关 ...

  5. 【BZOJ】 4813: [Cqoi2017]小Q的棋盘

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4813 暴力转移就好,考虑以某一个点为根的子树分为是否走回来两种情况 ${f_{i,j}}$ ...

  6. MySQL简单查询语句练习

    数据查询语法(DQL) DQL就是数据查询语言,数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端. 语法: SELECT selection_list /*要查询的列名称*/ F ...

  7. ubuntu 关闭 笔记本键盘背景灯

    /etc/rc.local 加入 ' > /sys/class/leds/tpacpi::kbd_backlight/brightness

  8. 【转】 VGA时序及其原理

    显示器扫描方式分为逐行扫描和隔行扫描:逐行扫描是扫描从屏幕左上角一点开始,从左向右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信 ...

  9. 亲自打造Deferred对象

    经过对比之后,决心学习jQuery,自己打造一个Deferred对象.var util = require('./util.js');function Callbacks() { var list = ...

  10. 『TensorFlow』网络操作API_上

    简书翻译原文 卷积层 卷积操作是使用一个二维的卷积核在一个批处理的图片上进行不断扫描.具体操作是将一个卷积核在每张图片上按照一个合适的尺寸在每个通道上面进行扫描.为了达到好的卷积效率,需要在不同的通道 ...