Appium移动自动化测试-----(六)4.运行第一个Appium脚本
新建maven空白工程
前置条件:安装eclipse或IntelliJ IDEA,及其maven插件,请自行百度




新建的工程如下:

新建目录apps,并将下载的安装包,拷贝到该目录下
打开POM增加依赖和插件
插入依赖

<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server-standalone</artifactId>
<version>2.46.0</version>
</dependency>
</dependencies>
插入插件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.8.1</version>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
新建测试类,编写代码
新建类yy.ClickTest.java

设置capabilities,初始化AndroidDriver

capabilities的详细说明,请参见另一篇博文:http://blog.csdn.net/kaka1121/article/details/51733779
上图中,都是必填属性
其中如果已经在手机上安装好了app,那么选择①中的配置
如果需要每次都重新安装app,那么选择②中的配置
①中的appPackage和appActivity可以使用sdk自带工具aapt获得,也详见上文提到的capabilities博文
编写所需要的相关方法

因为手机YY安装好后,会出来欢迎页面,需要按住屏幕向左滑动4次,并按下“立即体验”按钮,因此,需要上述两个方法。

方法①,按住屏幕中间,向左滑动,图示已经很清楚,不再赘述。
方法②,查看一个控件是不是存在,用于查看是否已经滑动到了包含“马上体验”按钮的页面,停止滑动。
编写测试代码
下面,我们来编写测试代码
代码需要完成的事情:
①进入欢迎页面,需要按住屏幕向左滑动n次,直到出现“马上体验”按钮
②点击“马上体验”按钮,进入主页
③点击直播,完成。
代码如下图所示:

其中,代码内获取控件都通过ID来获取,比如拿到“马上体验”按钮的ID,如下图,使用UIautomatorviewer

更多UIautomatorviewer信息,见博文:http://blog.csdn.net/kaka1121/article/details/51762200
连接手机,打开appnium
使用USB调试模式,连接到手机,细节请自行百度
要说明的是,要勾选USB调试,不勾选“监控ADB安装应用”

appnium安装见http://blog.csdn.net/kaka1121/article/details/51698700
打开appnium,点击开始,连接手机

连接成功后,效果如下:

运行代码
运行代码,则会在手机上运行:
卸载YY
安装手机YY
打开手机YY欢迎页面
按住屏幕向左滑动4次
按下“立即体验”按钮
按下“直播”按钮
示例代码下载:http://download.csdn.net/detail/kaka1121/9561079
转自:http://blog.csdn.net/kaka1121/article/details/51770275
Appium移动自动化测试-----(六)4.运行第一个Appium脚本的更多相关文章
- RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难
消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ...
- Appium移动自动化测试(一)--Mac安装Appium
一.Appium安装 1. 直接安装:Appium官网下载:https://bitbucket.org/appium/appium.app/downloads/ 这里mac系统升级到 Sierra后, ...
- 第二章 mac上运行第一个appium实例
一.打开appium客户端工具 1 检查环境是否正常运行: 点击左边第三个图标 这是测试你环境是否都配置成功了 2 执行的过程中,遇到Could not detect Mac OS ...
- python+Appium自动化:运行第一个appium脚本
用pycharm工具进行编写,运行一个开启淘宝app实例 from appium import webdriver desired_caps = { "platformName": ...
- appium学习【四】:第一个appium脚本
#coding=utf-8 import os import HTMLTestRunner import unittest import time import sys from appium imp ...
- python学习(一)运行第一个python脚本
当然这里指的是在linux或者unix下,像写bash脚本那样 #!/usr/bin/python print('The Bright Side ' + 'of Life...') 反正我建议就算一开 ...
- Appium移动自动化测试-----(五)python-client安装与测试
前提条件 当你点击这一章时,说明你是打算使用 Python 语言编写 appium 自动化测试脚本的. 1.安装 Python 语言 , Python的安装相对相简单得多. 2.Python 编辑器很 ...
- Appium移动自动化测试-----(五) java-client安装与测试
前提条件 当你点击这一章时,说明你是打算使用 Java 语言编写 appium 自动化测试脚本的. 1.安装 Java 环境 ,我想这一步你已经搞定了 2.安装 IntelliJ IDEA , 当然, ...
- Appium移动自动化测试-----(六)2.AppiumDesktop录制脚本生成极简脚本
AppiumDesktop启动页面: 启动AppiumDesktop以后点击该页面右上角的Start New Session按钮,就会启动一个新的会话窗口(如下图),在这个窗口我们需要配置一些Desi ...
随机推荐
- 建立自己的键盘栈(shortcutkeyStack)
建立自己的键盘栈(shortcutkeyStack) 作为一名开发者, 快捷键是必不可少的, 并且各种开发工具都有提供快捷键. 但是各种工具(IDE,编辑器)因为历史或者其他不可抗原因(比如键盘的布局 ...
- 数据结构实验之排序五:归并求逆序数(SDUT 3402)
归并排序详解(戳我). 以下是搬了别人的. #include<stdio.h> #include<stdlib.h> long long sum = 0; int a[1000 ...
- 《挑战30天C++入门极限》新手入门:C/C++中数组和指针类型的关系
新手入门:C/C++中数组和指针类型的关系 对于数组和多维数组的内容这里就不再讨论了,前面的教程有过说明,这里主要讲述的数组和指针类型的关系,通过对他们之间关系的了解可以更加深入的掌握数组和指 ...
- P1057 传球游戏——小学生dp
P1057 传球游戏 设f[i][j]为第i次传到j的方案数: f[0][1]=1; 单独处理开头和结尾: #include<cstdio> #include<cstring> ...
- Mysql插入多条数据测试
--新建存储过程 create procedure doinsert3() begin declare i int; declare j int; set i = 0; set j = 0; whil ...
- @Scope("prototype")的正确用法——解决Bean的多例问题
转自: https://www.jianshu.com/p/54b0711a8ec8 1. 问题,Spring管理的某个Bean需要使用多例 在使用了Spring的web工程中,除非特殊情况,我们 ...
- 什么是epistatic effects | 上位效应
epistatic与interaction之间的区别与联系? genetic上的interaction是如何定义的? Epistasis is the phenomenon where the eff ...
- 快速创建 Vue 项目
转载:https://www.jianshu.com/p/c7df292915e7 为了便于 Vue 项目的管理, Vue 团队官方开发了 vue-cli 工具. 本文将带您使用 vue-cli 快速 ...
- 我大概知道他在说什么了,是对内存单元的竞争访问吧。Python有GIL,在执行伪码时是原子的。但是伪码之间不保证原子性。 UDP丢包,你是不是做了盲发?没有拥塞控制的情况下,确实会出现丢包严重的情况。你先看看发送速率,还有是否带有拥塞控制。
我大概知道他在说什么了,是对内存单元的竞争访问吧.Python有GIL,在执行伪码时是原子的.但是伪码之间不保证原子性. UDP丢包,你是不是做了盲发?没有拥塞控制的情况下,确实会出现丢包严重的情 ...
- flutter Switch组件 On/off 用于切换一个单一状态
import 'package:flutter/material.dart'; class SwitchDemo extends StatefulWidget { @override _SwitchD ...