什么是Appium?

第三方自动化框架(工具),扩充了selenium webdriver 协议,在原有的基础上添加了移动端测试API

selenium webdriver 指定了客户端到服务端的协议

appium 是一个开源的、跨平台的自动化测试工具,用于app的自动化测试

appium 是跨平台的,支持android,ios,firefoxos等操作系统下的app测试

什么是selenium?

用于web应用程序测试工具,直接运行在浏览器,模拟用户操作,覆盖Windows、Linux、Mac,覆盖 IE、Chrome、firefox等浏览器,Java、Python多种语言进行脚本编写

官网:https://docs.seleniumhq.org/download/

版本:http://selenium-release.storage.googleapis.com/index.html

什么情况适合做自动化:

周期比较长的、需求比较稳定的、迭代周期比较长的

使用appium 做APP自动化测试的原理:

1)appium 的核心其实是一个暴露了一系列rest api的server

2)这个server的功能其实很简单:监听一个端口(4723),然后接受由client发送的command

3)然后翻译 这些command,把这些command 转成移动设备可以理解的形式发送给移动设备

4)移动设备执行完这些command后把执行结果返回给appium server

5)最后appium server 再把执行结果返回给client

1、APP自动化测试的环境配置:

1) 安装nodejshttps://nodejs.org/en/download/ 官网下载,安装好之后 cmd 里输入node -v 确定是否安装好(appium 是使用node js实现的,所以node是解释器)

2) 配置Android sdk 环境(monkey 工具下)

概念:

ADT(Android develpoment tools),安卓测试开发环境

adb(Android debug bridge) 是Android sdk 的一个工具,用来连接安卓手机和pc端的桥梁

创建ANDROID_HOME 系统环境变量,值为ADT下的sdk目录(D:\Program Files (x86)\adt-bundle-windows-x86_64-20140702\sdk)

将ANDROID_HOME 下的tools和platform-tools配置进path变量,即在path变量的值后面加上“;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;”

打开模拟器通过在Windows命令输入adb devices,检查是否可以检测到连接的设备信息(真机下需要用usb先连接电脑并在开发者模式下打开usb调试):127.0.0.1:62001

3)安装Appiumhttps://bitbucket.org/appium/appium.app/downloads/

安装完成之后需要配置环境变量,将appium安装路径下的node_modules/.bin目录配置到环境变量path后面

输入appium-doctor 检查appium做自动化需要依赖的环境ANDROID_HOME,JAVA_HMOE等是否都已准备好

出现这种就表示所需环境以及配置好了。

代码:

deviceName:设备名:127.0.0.1:62001

APPpackage:因为一个设备有很多APP,通过包名确定app--->com.tencent.mm

cmd输入:adb shell dumpsys activity | find “mFocusedActivity”

appActivity:app的一个页面--->com.tencent.mm/

monkey 是Android的一个内置程序

2、maven项目+selenium+testng 集成 环境搭建

1)创建maven项目:在左边空白处右击--new--project--输入maven,选择maven project--next--勾选 create a simple project--next--group id(分组,一般填写组织结构,相当于包)命名 如 com.ningmengban   artifact id (例如jar 包名) 命名如:appium42  ,packaging 是指打包成jar 或者war 包--finish

maven集成包官网下载:http://www.eclipse.org/m2e

1、本地仓库:C:\Users\Administrator\.m2

2、中央仓库:http://mvnrepository.com/

3、项目添加selenium,testng依赖,jar包的依赖:

http://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java/2.53.1

http://mvnrepository.com/artifact/org.testng/testng

4、eclipse 集成testng插件

selenium-Java:selenium是用于web应用程序测试的工具,测试直接运行在浏览器中,selenium webdriver 指定了客户端到服务端的协议

Java-client:扩充了webdriver的协议,在原有的基础上添加移动自动化相关的api

testng:下一代测试技术,利用注释来强化测试功能的测试框架,可以用来做单元测试和集成测试

5、如果没有集成,到eclipse插件中心下载安装,安装步骤(这个比较复杂,一般不用):

  1. help--install new software
  2. 在available software页面点击add
  3. 输入name:TESTNG ,location:http://beust.com/eclipse/
  4. 点击ok,选择加载出来的testng
  5. 点击next---i accept the。。---finish
  6. 开始安装
  7. 安装完毕,重启即可使用

一种简单的集成方法:解压testng压缩包,把里面对应的features 与plugins 文件夹下的文件夹copy到本地eclipse 根目录下对应文件夹下,重启即可

 

APP自动化测试的环境配置的更多相关文章

  1. 创建app前的环境配置/AppIcon/启动图片

    1.真机调试http://blog.csdn.net/tht2009/article/details/48580569 2.创建app前的环境配置

  2. 前端自动化测试 —— TDD环境配置(React+TypeScript)

    欢迎讨论与指导:) 前言 TDD -- Test-Drive Development是测试驱动开发的意思,是敏捷开发中的一项核心实践和技术,也是一种测试方法论.TDD的原理是在开发功能代码之前,先编写 ...

  3. Python appium搭建app自动化测试环境

    appium做app自动化测试,环境搭建是比较麻烦的. 也是很多初学者在学习app自动化之时,花很多时间都难跨越的坎. 但没有成功的环境,就没有办法继续后续的使用. 在app自动化测试当中,我们主要是 ...

  4. Java安装与环境配置

    Java安装 第一步 安装jdk-8u111-windows(根据操作系统的位数选择安装32位或64位) 注:路径用英文,不要出现中文和空格等.jdk和jre放在同一个文件夹下,便于管理 本例的路径为 ...

  5. app自动化测试环境配置:adb环境配置、monkey环境配置、appium环境配置大全

    1. 安装jdk 2. 安装配置Andriod sdk 安装Andriod sdk前首先需要安装配置好jdk环境. 然后安装Android sdk 安装完成后需要配置环境变量:ANDROID_HOME ...

  6. IOS-Appium 自动化测试——环境配置及模拟器、真机跑测试

    在MAC环境下配置IOS的appium的自动化测试环境,主要包含三个部分: 一.环境配置 1.安装homebrew(homebrew可以提供MAC OS无法提供的很多套件) ruby -e " ...

  7. 【Mac + Appium + Python3.6学习(三)】之IOS自动化测试环境配置

    在做这一节之前先配置我的另一篇文章所需要安装的前提准备条件:<[Mac + Appium学习(一)]之安装Appium环境前提准备> 一.安装IOS自动化测试环境 配置环境: Appium ...

  8. App自动化测试-1.App自动化介绍和环境搭建

    App自动化测试-1.App自动化介绍和环境搭建 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-b ...

  9. APP自动化环境配置

    做自动化很多人都不喜欢做app自动化,说实话,我也不喜欢做app自动化,但是没办法,老板给你钱,让你做,不得不做! 其实app自动化的难点就在于环境,环境OK了之后一切都和web自动化差不多,顶多就是 ...

随机推荐

  1. stringbuffer与stringbuilder区别分析

    它们到底都有什么区别呢! 三者都是用来对字符串进行操作,String通常用来定义一个变量,而StringBuilder StringBuffer则通常用来对字符串进行拼接等操作.但其实String同样 ...

  2. MSIL实用指南-生成break和continue

    break和continue本质都是标签的跳转

  3. 常用maven整合

    常用Maven依赖 rt,常用Maven配置整合,不定期更新 一.dependencies 1.jstl开发环境 <!-- jstl开发环境 --> <!-- https://mvn ...

  4. 牛客-2018多校算法第五场C-KMP

    字符串的问题 在原来的字符串中前缀与后缀相同,且原来的中间还含有这个子串: 这里加的num[]数组真是太厉害了,可以直接用来判断中间是否有子串: #include <iostream> # ...

  5. HDU1814Peaceful Commission求2-sa最小字典序

    #include <iostream> #include <cstdio> #include <vector> #include <cstring> # ...

  6. 洛谷P1352没有上司的舞会+树形二维DP

    传送门 题意:上司和直接下属,不能同时去一个聚会,问可邀请到的人的快乐值最大是多少: 参考:https://www.luogu.org/blog/mak2333/solution-p1352 思路: ...

  7. lightoj 1084 - Winter(dp+二分+线段树or其他数据结构)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1084 题解:不妨设dp[i] 表示考虑到第i个点时最少有几组那么 if a[i ...

  8. Flask源码浅析

    前言 学习一样东西,要先知其然,然后知其所以然. 这次,我们看看Flask Web框架的源码.我会以Flask 0.1的源码为例,把重点放在Flask如何处理请求上,看一看从一个请求到来到返回响应都经 ...

  9. 移动端适配,h5网页,手机端适配兼容方案.可以显示真实的1px边框和12px字体大小,dpr浅析

    以前写移动端都是用这段JS解决. (function (doc, win) { // 分辨率Resolution适配 var docEl = doc.documentElement, resizeEv ...

  10. PythonI/O进阶学习笔记_3.2面向对象编程_python的封装

    前言: 本篇相关内容分为3篇多态.继承.封装,这篇为第三篇 封装. 本篇内容围绕 python基础教程这段: 在面向对象编程中,术语对象大致意味着一系列数据(属性)以及一套访问和操作这些数据的方法.使 ...