如何搭建基于C#和 Appium 的 Android自动测试环境
本文由葡萄城技术团队于博客园原创并首发
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
如果想做手机端的自动化测试,Appium是首选的测试框架,因为网上使用的人多,资料丰富,支持语言多 Jave,Python,C#,Ruby,PHP,碰见问题也容易得到帮助。
关于Appium环境搭建的例子网上比较多,不过都是关于Python,Java的,使用C#客户端的资料比较少,公司现有的测试系统是基于C#构建的,因为要和现有系统集成,所以选择的C#语言作为客户端, 下载Appium 官网提供的C#例子,但是对应的Android 版本,Nunit 版本都比较旧,对于初次接触手机测试的人来说,一步一个坑,把例子拿下来,折腾了一两天,还是各种问题。最终通过百度,Google,终于搭建好了环境,现在分享一下过程,希望对于后来人会有些帮助。
默认大家是安装了Visual Studio 的,如果没有安装,请百度如何安装Visual Studio
搭建环境有三部分,模拟器环境准备,Appium服务器环境准备,C#单元测试工程环境准备,关于前两部分腾讯课堂,网易课堂都有视频资料,大家可以参考。
下面我们开始:
- 模拟环境搭建
 
模拟环境搭建建议用Android Studio ,这样配置简单,模拟器的性能也强一些。
下载地址:http://www.android-studio.org/ 最新版本是3.2
安装完成后打开 Android Studio
在Tools菜单下找到 SDK Manager 菜单打开( Tools –>SDK Manager)显示如下:

找到 Android SDK (Appearance & Behavior ->System Setting -> Android SDK)
安装 Android SDK 例如:Android 6.0
接下来配置环境变量:
配置ANDROID_HOME 变量,对应的目录可用从下面位置找,
我对位置做过调整,和默认安装的位置不一样。

将 E:\android-sdk 替换成自己机器的地址。

在Path 中追加:%ANDROID_HOME%\platform-tools; %ANDROID_HOME%\tools

安装完SDK 后就可以安装模拟器了,关闭SDK Manager ,打开 AVD Manager (Tools ->AVD Manager)

点击左下角的Create Virtual Device 打开了 Virtual Device Configuration
选择 phone ,找一个分辨率小一些的机型 例如 480X800 ,分辨率高了比较耗费资源。
点击Next

选择 other Images, 找到你刚才下载的SDK 对应的Image ,上面选了Android 5.0 我们就下 Android 6.0 对应的Image ,点击Download 进行下载。完成后就可以点击Next 到最后一个画面了。

点击Finish 就完成了虚拟机的创建。

点击启动,启动虚拟机


这样虚拟机就配置并启动起来了,上面的镜像使用的是arm 版本,如果你的机器是X86,Android Studio 建议你使用X86的虚拟机。如果想使用X86的虚拟机,需要在Bios中开启 Virtualization Technology 设定为Enable ,操作系统可能也要做一些配置,这里就不细说了。
接下来我们安装AppiumServer。可以到官网下载。
下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.7.1
Windows 操作系统 X86_64 处理器下载 appium-desktop-setup-1.7.1.exe 就可以了。
启动Appium

点击 Start Server v1.9.1

这样Appium Server 就启动了。
最后我们来配置单元测试工程。
启动Visual Studio ,创建一个单元测试工程。

在 NuGet 中查找 Appium (Tools ->NuGet Package Manager -> Manage NuGet Package for Solution…)
找到 Appium.WebDriver ,选择单元测试工程进行安装。

完成后使用下面代码替换自动生成的单元测试代码。运行单元测试,就可以看到如下模拟器中的计算器被打开,并点击了数字5。如下图:

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium.Remote;
using System;
namespace androidTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability("deviceName", "Android Emulator");
capabilities.SetCapability("automationName", "Appium");
capabilities.SetCapability("platformName", "Android");
capabilities.SetCapability("platformVersion", "6.0"); //可以根据自己的模拟器版版本进行修改。
capabilities.SetCapability("appPackage", "com.android.calculator2"); //安卓自带计算器
capabilities.SetCapability("appActivity", ".Calculator"); RemoteWebDriver wd = new RemoteWebDriver(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities);
try
{
var result = wd.FindElementById("digit_5");
result.Click();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally { wd.Quit(); } } }
}
上面代码最重要的就是关于 capabilities.SetCapability 的参数,具体参数可以看官方的文档说明。官方说明如下:
http://appium.io/docs/en/writing-running-appium/caps/
好了,关于使用C#单元测试和Appium进行Android 测试环境的搭建就结束了。
如何搭建基于C#和 Appium 的 Android自动测试环境的更多相关文章
- Appium Mac系统 自动测试环境搭建
		
一.python 环境准备 Mac 自带 Python 环境,一般为 2.7 版本. 1.查看当前系统默认的Python路径 which python ==> /usr/bin/python 2 ...
 - Appium与python自动测试环境及demo详解
		
App--UI自动化这种高端的名词已经被越来越多的人所高呼,可是从实际角度来讲,个人觉得还是有点鸡肋,不如接口自动化敏捷度高,工作量 也是接口自动化的好几倍.但是,[划重点了] 在技术时代中,作为测 ...
 - Appium 在 Android UI 测试中的应用
		
原文地址:https://blog.coding.net/blog/Appium-Android-UI Android 测试工具与 Appium 简介 Appium 是一个 C/S 架构的,支持 An ...
 - [唐胡璐]Android自动化- 测试环境搭建中遇到的问题
		
这里主要讲一下在配置过程中遇到一个小问题,其他的步骤会略过。 安装JDK,并设置环境变量 下载Android ADT, 解压后,文件夹显示如下: Download the ADT bundle for ...
 - Jenkins+Maven+SVN搭建自动部署、自动测试环境
		
.打开http://10.3.15.78:8080/jenkins/,第一次进入里面没有数据,我们需要创建job,我们这有2个项目,需要创建2个job.http://10.3.34.163:9890/ ...
 - 快速搭建appium自动测试环境
		
首先申明本文是基本于Python与Android来快速搭建Appium自动化测试环境: 主要分为以下几个步骤: 前提条件: 1)安装与配置python环境,打开 Python官网,找到"Do ...
 - Appium robotframework-appium (ios 客户端测试)环境搭建
		
一. 简介 1.1摘要 本人测试新人,最近在搞ios客户端的自动化,准备采用robotframework-appium来实现自动化测试,一边学习一边总结,此安装说明文档是基于mac系统10.11版本, ...
 - 基于node/mongo的App Docker化测试环境搭建
		
搭建步骤: 1.宿主机环境 ubuntu 14.4宿主机环境(云主机): 安装wget与curl(sudo apt-get install wget curl)2.安装Docker (wget -q ...
 - Android手机测试环境搭建
		
Android SDK概念: SDK(software development kit)软件开发工具包.被软件开发工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合. ...
 
随机推荐
- 《HelloGitHub》第 33 期
			
公告 欢迎 点击分享 自荐或发现的开源项目,也可安装 分享插件 更便捷地推荐有趣的开源项目. 小伙伴们,新的一年就要来了,今年的 Bug 改完了吗?先看看<HelloGitHub>最新一期 ...
 - docker(5):数据的管理
			
Docker的volume卷 为了能持久话保存和共享容器的数据. 使用docker volume卷的两种方式 1:数据卷 2:数据卷容器 1:数据卷 数据卷:数据卷会绕过docker 的ufs 直接写 ...
 - HTML5最佳实践web app
			
简介 本文重点关注如何充分利用HTML5和CSS让web app运行更加流畅. Tip 1: 使用web storage代替cookie cookie最大的缺陷是在每一次HTTP请求中都会携带所有符合 ...
 - IDEA编写css样式报错
			
粗心大意!浪费了30分钟时间,必须记录一下! 报错图片 琢磨了半天,没想出是哪里错了,很无奈!!!!!!!!! 度娘:ctrl+shift+alt+H,设置成NONE就可以了 试了一下,果然好使,不再 ...
 - Dynamics CRM 配置 OAuth 2.0
			
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复124或者20140324可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 本博文主要参考但不限于如下资料: ...
 - Git学习:如何登陆以及创建本地代码仓库、并提交本地代码至Github(最简单方法)
			
在我们的实际开发当中,代码经常会被公司要求上传到网络上,能够大家共同完成一个项目,因此掌握git技能也是一项必不可少的技能了,这里我们来学习以下基本的git操作.首先我们要想使用git这个东西需要把它 ...
 - JVM之垃圾收集器
			
前一篇讲了垃圾收集算法--JVM之GC算法.垃圾收集算法——标记-清除算法.复制算法.标记-整理算法.分代收集算法,如果把它看作是方法论,那么下面说的就应该是内存回收的具体实现. 先看一下JVM中有哪 ...
 - PHP错误:SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
			
使用PHP连接MySQL 8的时候,可能会发生如标题所示的错误: SQLSTATE[HY000] [2054] The server requested authentication method u ...
 - PLC
			
https://www.cnblogs.com/dathlin/p/7469679.html C#读写三菱PLC和西门子PLC数据 使用TCP/IP 协议https://blog.csdn.net/x ...
 - 将Python 程序打包成 .exe格式入门
			
PyInstaller PyInstaller 是一个十分有用的第三方库,可以用来打包 python 应用程序,打包完的程序就可以在没有安装 Python 解释器的机器上运行了. 它能够在 Windo ...