移动APP的自动化测试

开发移动应用,最耗时耗力的就是手动测试APP的每个功能点或修复bug。有人就会提议App的业务逻辑可以使用nUnit或xUnit测试单元来辅助完成。那用户界面要如何测试?众所周知,移动设备多种多样,数量及其庞大,设备的类型也是各式各样,要如何才能保证App用户界面在成千上百iOS和Android设备中都能正常显示,没有错误?这是很多APP开发人员最头疼的事情了。

今天,本文主要介绍如何使用Xamarin提供的UITest来测试app界面。

访问控件

当使用Xamarin.Forms创建应用程序时,会使用Xamarin.Forms的控件和XAML创建用户界面。运行时,Xamarin.Forms会根据我们创建的用户界面生成对应的原生应用程序。由于我们正在开发针对Xamarin.Forms控件,因此可通过StyleID 特殊属性在Xamarin.UITests中的访问权限。StyleID可以被设置为任意字符串,创建任何测试功能都可以被直接访问,且无论在iOS或Android应用中StyleID都是一致的,这就意味着不需要特别管理这些ID。

XAML

<Button x:Name="ButtonLogin"
        StyleId="ButtonLogin"
        Grid.Row="5"
        BackgroundColor="#F44336"
        BorderRadius="0"
        TextColor="White"
        Text="Login to Meetup"
        Command="{Binding LoginCommand}" />

c#

var buttonLogin = new Button
  {
    StyleId = "ButtonLogin",
    Text = "Login to Meetup",
    BorderRadius = 0,
    TextColor = Color.White,
    BackgroundColor = Color.FromHex("F443336")
  };
 

最后需要做的就是在iOS和Android 应用中添加代码,在原生控件中使用StyleId。这样可以调用Xamarin.UITest。这些代码需要在App的最终版注释掉。

iOS 设置

打开iOS的AppDelegate.cs 文件,在FinishedLaunching方法中添加以下代码:

   1:  Forms.ViewInitialized += (sender, e) =>
   2:  {
   3:    if (null != e.View.StyleId)
   4:    {
   5:      e.NativeView.AccessibilityIdentifier = e.View.StyleId;
   6:    }
   7:  };

Android 设置

打开MainActivity.cs文件,在OnCreate方法中添加以下代码:

   1:  Xamarin.Forms.Forms.ViewInitialized += (sender,  e) =>
   2:  {
   3:    if (!string.IsNullOrWhiteSpace(e.View.StyleId))
   4:    {
   5:      e.NativeView.ContentDescription = e.View.StyleId;
   6:    }
   7:  };

现在,可以运行UITest ,打开REPL,则会出现ButtonLogin :

在UITest,ButtonLogin常用于验证button的交互功能即登录屏幕是否正常出现:

   1:  [Test]
   2:  public void OpenLoginScreen()
   3:  {
   4:    app.Screenshot("App Launches");
   5:    app.Tap("ButtonLogin");
   6:    app.Screenshot("When I tap Login");
   7:    Assert.IsNotNull(app.Query("EntryUserName").Single());
   8:    app.Screenshot("Login Page is Visible");
   9:  }

亲们学会了吗?通过本篇文章能够让我们实现APP的用户界面的完美自动化测试!这样可以省时省力,高效提升测试效率!

时间: 2024-10-10 09:09:36

移动APP的自动化测试的相关文章

如何进行Android、IOS APP的自动化测试—东舟自动化测试解决方案

金融领域移动端自动化测试解决方案 -- 测试能力建设.实现敏捷测试.缩短测试周期 银行们的优步(Uber)时刻即将到来,银行的实体网点将被淘汰,移动设备将成为客户和银行之间的主要沟通"中介". 花旗银行全球视角及解决方案部 随着智能手机的广泛普及使用,越来越多的金融企业(银行.保险.证券),开始重视利用移动技术为其客户提供服务和推介服务信息.如何快速响应日新月异的市场需求,满足团队增量开发.快速迭代.敏捷测试的测试需求:如何实现多测试团队间的协作.资源共享与调配.任务统一管理:如何实现

移动端混合型App(hybrid app)自动化测试选型与实践

背景 公司产品的业务已经发展到了移动端,开发选型已经结束,决定使用phonegap做移动端的web应用开发平台.考虑到业务的复杂与多样,移动端的测试同样需要自动化.在网上看了很多,最终锁定了3个移动端测试工具:Selendroid,Appium,Robotium.之所以选择他们3个,是因为团队已经有了以Selenium为基础的测试框架,而这三个工具与Selenium可以说一脉相承. 目标 基于phonegap的混合型app(hybrid app)web应用移动端自动化测试 选型过程 Selend

BeautifulReport 实现app UI自动化测试

修改了 BeautifulReport源码中的一些内容<附:BeautifulReport--适用于unittest自动化测试的可视化报告>; 1.生成截图时,原来的img文件夹必须在项目根目录下,做了调整; 2.生成的截图无法在html报告上展示,老是会报路径错误,检查发现源码中在做判断时少加了system()方法才导致错误的出现; 源码github截图 修改后截图 简单的登录功能实现,懂车帝app为例; 1.页面元素封装; page_car.py from common.basics im

APP接口自动化测试JAVA+TestNG(三)之HTTP接口测试实例

转载自:http://www.cnblogs.com/findyou/p/5388853.html 说明,本文为学习参考,将于一段时间后删除. 前言    前两篇普及相关基础知识后,本篇主要对举例对国家气象局接口自动化测试进行讲解(Get请求及结果断言),以达到自动化测试入门目的,除了前两篇的一些了解外,需要有一定的JAVA知识(HTTP相关). 目录 3.1 HTTP接口(GET)测试实例 3.1.1 待测接口说明 3.1.2 新建JAVA工程 1.工程目录说明 2.Common.java源码

App自动化测试探索(一)借助Appium实现APP的自动化测试

移动应用测试十大要领: 选择系统平台 选择测试设备的品牌 注意行业和设备区分 关注Android的更新 不要忘记老设备 灵活使用Web分析工具 注意区分地区.运营商和网络技术 掌握只能手机的屏幕分辨率分布情况 关注平板电脑的发展 尽量规避BYOD(自动设备办公)模式的风险 10款移动应用测试框架 Appium (iOS/Android) Calabash (iOS/Android) KIF (iOS) Robolectric (Android) Flip Test (iOS) Gitorious

WEB、接口、APP自动化测试的一些看法

当故事看即可,只是个人看法............... 目前在各个软件公司中基本上存在WEB和APP的对外系统,不管是电子商务.电信.新闻等基本上都有WEB和APP同时存在.对于APP个人感觉是新东西,但也觉得它就是个老东西,因为大家是否记得我们曾经装在电脑上的Application应用程序,当然一个管理软件当时就很NB了.不过现在手机上的Application和以前电脑上的Application当然不管技术上还是形态上都是不一样的,但使用上似乎是一样的,同样的下载---安装---使用.这些都

sikuli+eclipse对于安卓app自动化测试的应用(第一次写博客,有些语言还不太专业,望海涵)

Sikuli是什么? 下面是来自于官网的介绍:Sikuli is a visual technology to automate and test graphical user interfaces (GUI) using images (screenshots). Sikuli includes Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an integrated development environm

App自动化测试工具总结

无线客户端的发展很快,特别针对是android和ios两款无线操作系统的客户端应用,相应的测试工具也应运而生,这里主要给大家介绍一些针对iPhone App的自动化测试工具. 首先,我们把这些测试框架分为三大类:接口测试工具.注入式UI测试工具.录放式UI测试工具. 一.接口测试工具,主要在iphone SDK提供的单元测试框架的基础上,完成代码的接口功能测试. 这类工具用的比较多的是SDK本身提供的test unit,以及google的google-toolbox-for-mac工具.goog

基于Appium的APP自动化测试基础--美团APP的实例

转:https://blog.csdn.net/Tigerdong1/article/details/80159156 前段时间用一种流行语言,一个主流工具,一个实用框架,写了一个美团app自动化测试的Demo,利用appium+python+unittest+uiautomatorviewer,编写了测试用例,并通过HTMLTestRunner输出测试报告.Appium环境搭建的过程就不说了(这种内容百度一搜一大把).我是利用uiautomatorviewer进行元素定位的,当然如果比较简单也