若是想作手机端的自动化测试,Appium是首选的测试框架,由于网上使用的人多,资料丰富,支持语言多 Jave,Python,C#,Ruby,PHP,遇见问题也容易获得帮助。没有其余框架那么大局限。android
关于Appium环境搭建的例子网上比较多,不过都是关于Python,Java的,使用C#客户端的资料比较少,公司现有的测试系统是基于C#构建的,由于要和现有系统集成,因此选择的C#语言做为客户端, 下载Appium 官网提供的C#例子,可是对应的Android 版本,Nunit 版本都比较旧,对于初次接触手机测试的人来讲,一步一个坑,把例子拿下来,折腾了一两天,仍是各类问题。最终经过百度,Google,终于搭建好了环境,如今分享一下过程,但愿对于后来人会有些帮助。ios
默认你们是安装了Visual Studio 的,若是没有安装,请百度如何安装Visual Studiogit
搭建环境有三部分,模拟器环境准备,Appium服务器环境准备,C#单元测试工程环境准备,关于前两部分群内都有视频资料,你们能够参考。github
下面咱们开始:面试
模拟环境搭建 模拟环境搭建建议用Android Studio ,这样配置简单,模拟器的性能也强一些。android-studio
下载地址:www.android-studio.org/ 最新版本是3.2服务器
安装完成后打开 Android Studioapp
在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
点击左下角的Create Virtual Device 打开了 Virtual Device Configuration
选择 phone ,找一个分辨率小一些的机型 例如 480X800 ,分辨率高了比较耗费资源。
点击Next
选择 other Images, 找到你刚才下载的SDK 对应的Image ,上面选了Android 5.0 咱们就下 Android 6.0 对应的Image ,点击Download 进行下载。完成后就能够点击Next 到最后一个画面了。
这样虚拟机就配置并启动起来了,上面的镜像使用的是arm 版本,若是你的机器是X86,Android Studio 建议你使用X86的虚拟机。若是想使用X86的虚拟机,须要在Bios中开启 Virtualization Technology 设定为Enable ,操做系统可能也要作一些配置,这里就不细说了。
接下来咱们安装AppiumServer。能够到官网下载。
Windows 操做系统 X86_64 处理器下载 appium-desktop-setup-1.7.1.exe 就能够了。
启动Appium
点击 Start Server v1.9.1
这样Appium Server 就启动了。
最后咱们来配置单元测试工程。
启动Visual Studio ,建立一个单元测试工程。
找到 Appium.WebDriver ,选择单元测试工程进行安装。
1using Microsoft.VisualStudio.TestTools.UnitTesting;
2
3using OpenQA.Selenium.Remote;
4
5using System;
6
7namespace androidTest
8
9{
10
11 [TestClass]
12
13 public class UnitTest1
14
15 {
16
17 [TestMethod]
18
19 public void TestMethod1()
20
21 { 若是对软件测试、接口测试、自动化测试、性能测试、LR脚本开发、面试经验交流。
22 感兴趣能够175317069,群内会有不按期的发放免费的资料连接,这些资料都是从
23 各个技术网站搜集、整理出来的,若是你有好的学习资料能够私聊发我,我会注明
24 出处以后分享给你们。
25
26 DesiredCapabilities capabilities = new DesiredCapabilities();
27
28 capabilities.SetCapability("deviceName", "Android Emulator");
29
30 capabilities.SetCapability("automationName", "Appium");
31
32 capabilities.SetCapability("platformName", "Android");
33
34 capabilities.SetCapability("platformVersion", "6.0"); //能够根据本身的模拟器版版本进行修改。
35
36 capabilities.SetCapability("appPackage", "com.android.calculator2"); //安卓自带计算器
37
38 capabilities.SetCapability("appActivity", ".Calculator");
39
40
41
42 RemoteWebDriver wd = new RemoteWebDriver(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities);
43
44 try
45
46 {
47
48 var result = wd.FindElementById("digit_5");
49
50 result.Click();
51
52 }
53
54 catch (Exception ex)
55
56 {
57
58 Console.WriteLine(ex.Message);
59
60 }
61
62 finally { wd.Quit(); }
63
64
65
66 }
67
68
69
70 }
71
72}
73
74原文:https://blog.csdn.net/Stephen_shijun/article/details/83994212
复制代码