第一个appium的Demo

时间:2022-09-11 12:15:01

原文来自:一颗糖果  http://www.cnblogs.com/linglingyuese/articles/8418311.html

一、环境搭建

略(后期补)

二、创建一个测试apk包的项目

第一个appium的Demo

三、新建项目之后导入jar包、apk等

1、在项目下面创建文件夹:apps、libs,并把要测试的apk安装包及jar包导入项目,准备工作完成后整个 框架如下图所示

第一个appium的Demo

注意:java-client和selenium-server-standalone的jar包的版本要对应,最好找齐如上截图所示的版本,要不然会版本冲突导致未知错误

四、新建一个测试Demo:QuizTest.java

第一个appium的Demo
package com.test.quiz;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.concurrent.TimeUnit; import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.remote.DesiredCapabilities; import io.appium.java_client.AppiumDriver; public class QuizTest { public AppiumDriver driver;
private boolean isInstall = false; public void startRecord () throws IOException{
Runtime rc = Runtime.getRuntime();
rc.exec("cmd.exe /E:/Android/sdk/platform-tools adb shell screenrecord /sdcard/runCase.mp4");//录制屏幕运行视频
} /**
* 开始启动
* @throws IOException
*/
@Before
public void setUp() throws IOException{
// 启动appium
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "emulator-5554");//指定测试机
capabilities.setCapability("automationName", "Appium");
capabilities.setCapability("platformName", "Android");// 指定测试平台
capabilities.setCapability("platformVersion", "22");//平台版本 // 配置测试apk
capabilities.setCapability("appPackage", "com.example.quizactivity");//测试的包
capabilities.setCapability("appActivity", "com.example.quizactivity.QuizActivity");//测试的activity
capabilities.setCapability("sessionoverride", true);//每次启动时覆盖session,否则第二次后运行会报错不能新建session
capabilities.setCapability("unicodekeyboard", true);//设置键盘
capabilities.setCapability("resetkeyboard", false); //设置默认键盘为appium的键盘
driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); // 安装APK,如果真机设备已经安装,则不需要重新安装
if (isInstall){
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot,"apps");
File app = new File(appDir,"QuizActivity.apk");
capabilities.setCapability("app", app.getAbsolutePath());
}
startRecord(); } /**
* 点击显示上一条
* @throws InterruptedException
*/
@Test
public void PreQuestion() throws InterruptedException{
driver.findElementById("com.example.quizactivity:id/prev_button").click();// 点击上一个按钮
Thread.sleep(2000);
driver.findElementById("com.example.quizactivity:id/next_button").click();//点击下一个按钮
Thread.sleep(2000);
String tips = driver.findElementById("com.example.quizactivity:id/question_text_view").getText();
Assert.assertEquals(tips, "The Suez Canal connects the Red Sea and the Indian Ocean.");
Thread.sleep(2000);
} /**
* 结束启动
*/
@After
public void tearDown(){
driver.quit();
} }
第一个appium的Demo

其中:

1、指定测试机的获取:adb devices

2、测试包及测试的activity获取:adb shell dumpsys window | findstr mCurrentFocus

第一个appium的Demo

3、元素ID的获取:可以利用android-sdk自带的UI Automator Viewer

UI Automator Viewer的目录地址:D:\android\sdk\tools\uiautomatorviewer.bat

双击打开uiautomatorviewer.bat,出现如下图所示页面:

第一个appium的Demo

获取PrevButton:

第一个appium的Demo

其他值也可以照样获取

五、执行appium

1、首先启动appium

第一个appium的Demo

2、在eclipse运行测试项目

3、查看手机可以看到APP自动运行所编写的脚本

 
分类: appium
标签: appium

第一个appium的Demo的更多相关文章

  1. appium跑demo简单实例讲解

    安装appium,设置 demo.pyfrom appium import webdriver #要装webdriver,方法查看http://www.cnblogs.com/sincoolvip/p ...

  2. 我的第一个 react redux demo

    最近学习react redux,先前看过了几本书和一些博客之类的,感觉还不错,比如<深入浅出react和redux>,<React全栈++Redux+Flux+webpack+Bab ...

  3. 1&period;类的加载机制&lowbar;继承类的加载&lpar;一个小的Demo&rpar;说明

    今天我们先来一个小的Demo来了解类的加载顺序. public class ClassLoaderTest { public static void main(String[] args) { Sys ...

  4. 第一个ajax小demo

    第一个ajax小demo 文章来源:http://blog.csdn.net/magi1201/article/details/44569657

  5. Appium&lpar;四&rpar;:真实机第一个appium程序、模拟器第一个appium程序、查看元素

    1. 真实机第一个appium程序 学完了前面的知识,也将环境搭建好了,接下来我们就正式开始appium的学习了. 在做app自动化的时候,我们肯定是针对某个产品.某个软件进行测试,那么我们一定是先让 ...

  6. 尝试用selenium&plus;appium运行一个简单的demo报错:could not get xcode version&period; &sol;Library&sol;Developer&sol;Info&period;plist doest not exist on disk

    业余时间抽空搭了个appium+selenium的环境(mac), 在执行第一个脚本的时候遇到个问题纪录下: could not get xcode version. /Library/Develop ...

  7. 无废话WCF入门教程六&lbrack;一个简单的Demo&rsqb;

    一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...

  8. appium 执行demo

    appium很早就了解了,一直没有之际操作过,最近把官网的demo搞下来执行了一遍,还是很有意思的 经过测试是可以跑起来的,不过跑得过程中,输入法需要默认为英文的,如果是中文的码输入的时候有点问题,可 ...

  9. 一起来花5分钟写一个PHP入门Demo

    最近公司招了几个应届毕业生,他们对前端的了解还挺多,但是对后端的技术一无所知,我觉得,作为一个前端攻城狮,如果你有远大的抱负,就应该雨露均沾... 今天我就跟大家讲一讲PHP最基本的入门,至少别人问起 ...

随机推荐

  1. Mac利用PD虚拟机安装Centos7

    一.PD虚拟机的安装1.Parallels Desktop ,简称PD,号称是Mac上最好用的虚拟机,具体的就在此不进行过多描述.下附Mac .app文件夹下载,下载后放入/Applications/ ...

  2. 淡蓝风格的手机登录HTML模板

    查看效果:http://hovertree.com/texiao/mobile/10/ 或者手机扫描二维码查看效果: 效果图: 代码如下: <!DOCTYPE html> <html ...

  3. Servlet目录

    Servlet目录   课时1 Servlet概述12:30 课时2 servlet的第一个例子31:08 课时3 servlet的生命周期18:18 课时4 HttpServlet详细讲解31:43 ...

  4. mac下SVN上传&period;a静态库文件

    在mac下很多svn管理工具默认都不能上传.a文件,但是用命令行可以解决此问题. 打开终端,cd 进入到需要上传的.a文件所在的文件夹. 确保 ls能看到.a文件 然后使用命令,如:svn add l ...

  5. &period;NET中数据集的强类型化

    我们知道,每一种程序设计语言都提供一定的类型检查,类型检查可以在编译时进行,也可以在运行时进行,分别称做静态类型检查和动态类型检查.由于静态类型的检查是在编译时进行,实现比较容易,能提高程序的运行效率 ...

  6. jQuery——AJAX&lpar;一&rpar;

    jQuery.ajax(options):通过HTTP请求加载远程数据, 参数:options(可选),ajax请求设置.所有选项都是可选的. 返回值:XMLHttpRequest function ...

  7. Python输出中文乱码问题

    //建立一个文件test.txt,文件格式用ANSI,内容为: //abc中文 //用python来读取 # coding=gbk print open("Test.txt").r ...

  8. C&num;使用AutoMapper6&period;2&period;2&period;0进行对象映射

    先说说DTO DTO是个什么东东? DTO(Data Transfer Object)就是数据传输对象,说白了就是一个对象,只不过里边全是数据而已. 为什么要用DTO? 1.DTO更注重数据,对领域对 ...

  9. JavaScript压缩工具JSA使用介绍

    JavaScript压缩工具JSA使用介绍 JSA绝对是我使用过的JS压缩工具中最上乘的一个.认识它是从ligerUI开始.在ligerUI的QQ讨论组里,大神--ligerUI的作者告诉我他的lig ...

  10. HashTable和HashMap的区别详解&lpar;转&rpar;

    一.HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. HashMap是非线程安全的, ...