精华内容
下载资源
问答
  • 2020-11-18 20:39:38

    Android常用的自动化测试工具框架:

    Monkey,MonkeyRunner,UIAutomator,Robotium,Appium,Monkey Talk......

    但这些工具框架都是什么呢有什么联系呢,先通过一张图来了解一下吧

     

    是不是一脸懵逼,不知道这是什么鬼。下面详细了解一下。

    一、Monkey
      是Android SDK自带的测试工具,是一个命令行工具,可以运行在模拟器中或者实际设备中,它向系统发送伪随机的用户事件流(如按键输入,触摸屏输入,手势输入等),实现对正在开发的应用程序进行压力测试。由于测试事件和数据都是随机的,不能自定义,所以有很大的局限性。

    二、MonkeyRunner

      是Android SDK提供的测试工具。严格意义上来说MonkeyRunner其实是一个Api工具包,比Monkey强大,可以编写测试脚本来自定义数据、事件。缺点是脚本(jython(java语言))用Python(Python(C语言))来写,对测试人员来说要求较高,有比较大的学习成本;使用By id/name/text方法操控(hierarchyviewer),执行速度太慢。典型应用:安装,卸载,启动Activity,点击X,Y坐标,发送按键事件,drag,截屏等。

    三、UIAutomator

      是Android提供的自动化测试框架,基本上支持所有的Android事件操作。是用来做UI测试的,也就是普通的手工测试,点击每个控件元素看看输出的结果是否符合预期。对比Instrumentation它不需要测试人员了解代码实现细节(可以用UiAutomatorviewer抓去App页面上的控件属性而不看源码)。能跨App(比如:很多App有选择相册、打开相机拍照,这就是跨App测试)。缺点是只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp。

    四、Robotium

      是基于Instrumentation的测试框架,主要针对android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击,长按,滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合android官方提供的测试框架达到对应用程序进行自动化测试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium对Activity,Dialog,Toast,Menu都是支持的。支持Native app、Hybird App。缺点不能跨App。

    录制工具Radar(不稳定)、Testin(不提供源码)、官网工具(收费)
    开发环境:脚本语言java;Eclipse中引入:robotium-solo-**.jar

    五、Appium (官网:http://appium.io/)

      是开源的移动端自动化测试框架;支持Native App、Hybird App、Web App;支持Android、iOS、Firefox OS;是跨平台的可以在mac,windows以及linux系统上。用Appium自动化测试不需要重新编译App;脚本语言:Java、python、ruby、C#、Objective C、PHP等主流语言。

    相关限制:如果你在Windows使用Appium,你没法使用预编译专用于OS X的.app文件,因为Appium依赖OS X专用的库来支持iOS测试,所以在Windows平台你不能测试iOS Apps。这意味着你只能通过在Mac上来运行iOS测试。

    总结:在iOS部分是封装了UIAutomation;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是Instrumentation,也就说Appium同时封装了UiAutomator和Instrumentation。所以Appium拥有了以上几大框架的所有优点:跨App,支持Native App、Hybird App、Web App,还支持N种语言来编写你的测试脚本。

    appium内核基于UiAutomator来识别元素。如果只有Android app产品,推荐选择robotium,提供的API比appium好用;既有IOS和Android,则使用appium

    六、Instrumentation

       是早期Google提供的Android自动化测试工具类,虽然在那时候JUnit也可以对Android进行测试,但是Instrumentation允许你对应用程序做更为复杂的测试,甚至是框架层面的。通过Instrumentation你可以模拟按键按下、抬起、屏幕点击、滚动等事件。Instrumentation是通过将主程序和测试程序运行在同一个进程来实现这些功能,你可以把Instrumentation看成一个类似Activity或者Service并且不带界面的组件,在程序运行期间监控你的主程序。缺点是对测试人员来说编写代码能力要求较高,需要对Android相关知识有一定了解,还需要配置AndroidManifest.xml文件,不能跨多个App。

    七、Espresso

      是Google的开源自动化测试框架。相对于Robotium和UIAutomator,它的特点是规模更小、更简洁,API更加精确,编写测试代码简单,容易快速上手。因为是基于Instrumentation的,所以不能跨App。

     八、Selendroid

      是基于Instrumentation的测试框架,可以测试Native App、Hybird App、Web App,但是网上资料较少,社区活跃度也不大。

    了解更多测试知识访问如下链接:

    https://edu.csdn.net/course/detail/22948

    https://edu.csdn.net/lecturer/3215

    https://edu.csdn.net/course/detail/30898

    https://edu.csdn.net/course/detail/25768

     

    更多相关内容
  • 根据网上资源整理的基于python的安卓自动化测试,涉及python环境搭建,以及uiautomator的使用。
  • 腾讯Android自动化测试实战电子书,针对移动安卓进行自动化测试
  • 安卓自动化测试框架

    2015-09-23 10:24:31
    通过android的instrumentation机制联系起来,可以用来对应用程序进行功能测试和简单的性能测试,测试程度也可以是从代码级别到具体功能点级别,到简单的性能测试级别。本文将从以下几个方面来对基于android平台的...
  • 文主要介绍一个基于uiautomator2封装的一个Python库android-catcher,该库的功能主要有对Android设备进行UI自动化测试和采集手机性能数据,适用于如列表滑动、录制视频等各种测试场 文主要介绍一个基于 uiautomator...
  • android自动化

    2016-01-04 17:02:19
    主要做手机ui页面的黑盒自动化 优点:跨进程(robotium不能跨进程)、可移植 缺点:只能运行在androidAPI15以上
  • 这个软件叫做 Auto.js,只支持安卓,是一个不需要 Root 权限的 JavaScript 自动化软件。什么意思呢,就是在你的安卓手机上安装这个 APP,然后通过编写 JS 脚本的方式实现自动化操作。类似的也有其他的一些软件,比如...
  • 腾讯Android自动化测试实战(腾讯制作)
  • 此资源是一个Android自动化测试框架,封装了模拟点击、文本输入、截屏、解虚拟屏、通过图片点击等操作,并给出了一个案例。
  • Android自动化测试UIautomatorUiObject精品PPT课件.pdf
  • TestInAppium - 基于Appium的Android自动化测试 代码仅针对我司产品,但集成现今主流的测试方法,为您提供一点小参考 如果本项目对您有一点点帮助,欢迎您能赏个Star:star:,支持我将项目持续维护和开源下去 已实现...
  • 基于python + Appium的安卓自动化

    千次阅读 2021-10-31 22:04:19
    基于python + Appium的安卓自动化 最近要双11了,刷喵糖比较火,看到github上一个刷喵糖的项目testerzhang/taobaomiao.git,也成功跑起来了,顺便研究下了实现方法 关于Appium Appium是一款开源的的自动化测试框架...

    基于python + Appium的安卓自动化

    最近要双11了,刷喵糖比较火,看到github上一个刷喵糖的项目testerzhang/taobaomiao.git,也成功跑起来了,顺便研究下了实现方法

    关于Appium

    Appium是一款开源的的自动化测试框架,支持通过WebDriver协议操作ios或者安卓上的Web App、Native App 和 Hybrid App。结合python脚本可以完成移动应用的自动化测试和操作。因为具有比较高的灵活性,除了自动化测试外,它也常被用来刷各互联网厂的活动任务。

    实现自动化操作安卓app,我们需要:

    1. 配置andriod sdk
    2. 配置appium
    3. 编写python脚本

    配置android sdk

    首先看pc端配置

    选择合适自己系统版本的Android-sdk下载并安装 。下载地址(也可以自己找其他的地址)

    完成之后安装目录里sdk/platform-tools目录下应该有个adb文件

    在这里插入图片描述

    再来看安卓端配置,以小米手机为例

    1. 设置-》我的设备-》全部参数-》连续点击5下MIUI版本进入开发者模式
    2. 返回设置首页--》更多设置-》开发者选项
    3. 开启“USB调试”,“USB安装”,“USB调试(安全设置)”
    

    完成以上配置,用数据线连接手机和pc。通过adb devices -l命令查看设备

    ➜ adb devices -l
    * daemon not running; starting now at tcp:5037
    * daemon started successfully
    List of devices attached
    10fb1510               device usb:337634472X product:chiron model:MIX_2 device:chiron transport_id:1
    

    能成功查看到设备说明配置成功。

    配置appium

    appium常用安装方式有两种,一是通过nodejs安装,二是通过gui安装。gui比较方便,所以只说下第二种安装方式。

    从github选择适合系统版本的安装包: 下载链接

    安装完成后配置好java home和 android home

    在这里插入图片描述

    配置完成后点击Start Server 按钮开启监听端口。

    编写python脚本

    确认前置环境准备完毕我们就可以编写代码了。之前写的一篇利用业务逻辑漏洞的自动化考勤帖子下有小伙伴问钉钉打卡怎么破。

    那我们以实现自动化钉钉打卡为例。

    打开钉钉app代码demo

    import time
    
    from appium import webdriver
    from loguru import logger
    logger.add("dingding.log")
    
    
    app_config = {
        "platformName": "Android",
        "platformVersion": "9",
        "deviceName": "MIX 2",
        "appPackage": "com.alibaba.android.rimet",
        "appActivity": "com.alibaba.android.rimet.biz.LaunchHomeActivity",
        "noReset": True  # 再次启动不需要重新登录
    }
    
    
    def main():
        url = "http://localhost:4723/wd/hub"
        driver = webdriver.Remote(url, app_config)
        logger.debug("已打开钉钉, 延时5秒")
        time.sleep(5)
        # print(driver.page_source)
        logger.debug("退出")
        driver.quit()
    
    
    
    if __name__ == '__main__':
        main()
    

    app_config中的安卓版本一般设置里面就可以看到,如需打开其他软件需要修改appPackage和Activity,确认配置可以参考

    查看Android的appPackage和Activity的多种方法

    上述代码已经实现了打开app,后面的工作就是定位页面元素,模拟点击滑动之类的操作。相关开发文档可以参考http://www.javashuo.com/article/p-yxkbxpts-c.html

    实现打卡完整过程简单demo:

    # 仅做简单参考,实际使用时可以添加server酱和adb 命令行模拟GPS位置信息等功能。感兴趣的小伙伴自己去丰富功能
    import time
    
    from appium import webdriver
    from loguru import logger
    logger.add("dingding.log")
    
    
    app_config = {
        "platformName": "Android",
        "platformVersion": "9",
        "deviceName": "MIX 2",
        "appPackage": "com.alibaba.android.rimet",
        "appActivity": "com.alibaba.android.rimet.biz.LaunchHomeActivity",
        "noReset": True  # 再次启动不需要重新登录
    }
    
    
    
    def main():
        url = "http://localhost:4723/wd/hub"
        driver = webdriver.Remote(url, app_config)
        logger.debug("已打开钉钉, 延时5秒")
        time.sleep(5)
    
        # 点击右上角打卡
        driver.find_element_by_xpath('//android.widget.TextView[contains(@text, "打卡")]').click()
        logger.debug("点击打卡按钮, 延时5秒")
        time.sleep(5)
    
        # 选择打卡主体企业,没有多个企业的账户不需要这一步
        # sign = '//android.widget.TextView[contains(@text, "阿里巴巴")]'
        # sign_button = driver.find_element_by_xpath(sign)
        # sign_button.click()
        # logger.debug("选择到“阿里巴巴”, 延时10秒")
        # time.sleep(10)
        
    
        # 通过bounds直接定位手机正中间的打卡按钮
        # 每个手机可能略有不同,可根据page_source去定位适配其他手机
        # print(driver.page_source)
        driver.tap([(423,1041), (657,1123)], 100)
        logger.debug("打卡成功, 延时10秒退出")
        time.sleep(10)
    
        logger.debug("退出")
        driver.quit()
    
    
    if __name__ == '__main__':
        main()
    

    参考链接

    安卓入门教程

    xpath教程

    展开全文
  • 什么是aapt?执行命令:C:\Users\XiaopengaaptAndroidAssetPackagingTool1.列出apk包的内容aaptl[ist][-v][-a]file.{zip,jar,apk}注:filepath是apk存放的路径1.1aaptl-vfilepath/..apk:以table的形式列出来(不过我...
  • 好用的安卓自动化测试框架Espresso

    千次阅读 2022-04-06 14:28:36
     Android自动化测试是应用开发中提升开发效率的一种方式,它可以在短时间内跑完所有的测试方案以及实现各种交互,从而让开发者更加方便和直观的知道代码的实现效果。  Android自动化测试可以分为单元测试、UI测试...

    Android测试概述

      Android自动化测试是应用开发中提升开发效率的一种方式,它可以在短时间内跑完所有的测试方案以及实现各种交互,从而让开发者更加方便和直观的知道代码的实现效果。

      Android自动化测试可以分为单元测试、UI测试、Monkey测试三种,同时也分小中大三种测试。

      单元测试

      单元测试又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作,程序单元是应用的最小可测试部件。

      Android中的单元测试是基于JUnit,可分为本地测试和Instrumented 测试。

      本地测试对应的项目目录是
    module-name/src/test/java/,本地测试是运行在本地JVM上的,不需要模拟器或者设备的支持Instrumented 测试在项目中对应的目录是module-name/src/androidTest/java/,这个测试包含了Android系统的api,所以要在模拟器或者设备上运行,速度比本地测试慢。

      单元测试最常用的框架就是JUnit跟Mockito组合的测试框架,其中JUnit用来跑主要的测试代码,Mockito可以创建特定测试对象(非对象本身)并设置一些特定的属性供测试使用。

      UI测试

      UI测试是测试应用中的各种交互是否达到了实现的效果。常用的UI测试框架有Espresso和UIAutomator。

      UIAutomator是一个界面测试框架,适用于整个系统上以及多个已安装应用间的跨应用功能界面测试,它提供了一组 API,用于构建在用户应用和系统应用上执行交互的界面测试。

      Espresso是Google的开源自动化测试框架。相对于UIAutomator,它的特点是规模更小、更简洁,API更加精确,编写测试代码简单,容易快速上手。因为他是基于Instrumentation的,所以不能跨App。

      Espresso的使用

      Espresso有三个重要的类:分别是Matchers(匹配器)、ViewAction(界面行为)、ViewAssertions(界面判断)。

      其中Matchers是常常是通过匹配条件来找UI组件或过滤UI,而ViewAction是来模拟用户操作界面的行为,ViewAssertions对模拟行为操作的View进行变换和结果验证。

      执行顺序如下:

      依赖和配置

      在导入好包之后就可以module的AndroidTest包下开始编写自己的UI自动化测试代码了。

      测试界面跳转

      测试界面跳转时需要用的Espresso-Intents库,它是Espresso的扩展程序,支持对被测应用发出的intent进行验证和打桩。

      它与Mockit 类似,但适用于Android Intent,Espresso-Intents有两个比较重要的方法itending()和intended()。

      intending() 该方法可以插桩(设置跳到其他Activity后返回的参数),原来的Activity调用startActivityForResult()触发桩测试。

      intended() 方法是对发送出去的intent进行确认,如果不是给出的intent则会报错。

    @Test fun validateIntentSentToPackage() {

    user.clickOnView(system.getView(R.id.callButton))

    intended(toPackage("com.android.phone"))

    }

      异步测试

      Espresso测试有个很强大之处就是它在多个测试操作中是线程安全的,它会等待当前进程的消息队列中的UI事件,并且在任何一个测试操作中会等待其中的异步任务结束才会执行下一个测试。

      Espresso异步测试是要导入以下两个包:

      异步测试的流程

      新建一个类继承IdlingResource:

    public class SimpleIdlingResource implements IdlingResource {

    private final String mResourceName;

    //这个counter值就像一个标记,默认为0

    private final AtomicInteger counter = new AtomicInteger(0);

    private volatile ResourceCallback resourceCallback;

    public SimpleIdlingResource(String resourceName) {

    mResourceName = resourceName;

    }

    @Override

    public String getName() {

    return mResourceName;

    }

    @Override

    public boolean isIdleNow() {

    return counter.get() == 0;

    }

    @Override

    public void registerIdleTransitionCallback(ResourceCallback resourceCallback) {

    this.resourceCallback = resourceCallback;

    }

    //每当我们开始异步请求,把counter值+1

    public void increment() {

    counter.getAndIncrement();

    }

    //当我们获取到网络数据后,counter值-1;

    public void decrement() {

    int counterVal = counter.decrementAndGet();

    //如果这时counter == 0,说明异步结束,执行回调。

    if (counterVal == 0) {

    //

    if (null != resourceCallback) {

    resourceCallback.onTransitionToIdle();

    }

    }

    if (counterVal < 0) {

    //如果小于0,抛出异常

    throw new IllegalArgumentException("Counter has been corrupted!");

    }

    }

    }

      新建一个管理类去管理上述类:

    public class EspressoIdlingResource {

    private static final String RESOURCE = "GLOBAL";

    private static SimpleIdlingResource mCountingIdlingResource =

    new SimpleIdlingResource(RESOURCE);

    public static void increment() {

    mCountingIdlingResource.increment();

    }

    public static void decrement() {

    mCountingIdlingResource.decrement();

    }

    public static IdlingResource getIdlingResource() {

    return mCountingIdlingResource;

    }

    }

      将管理类插入到异步代码中,在异步任务开始前插入代码:

    protected void onReqStart(int where) {

    //异步开始前

    EspressoIdlingResource.increment();

    }

      异步任务结束后插入代码:

    private void onFinish() {

    if(!EspressoIdlingResource.getIdlingResource().isIdleNow()){

    EspressoIdlingResource.decrement();

    }

    }

      在测试代码中注册IdlingRecource:

    @Before

    public void setUp() throws Exception {

    //调用Activity中我们已经设置好的getIdlingresource()方法,获取Idlingresource对象

    idlingresource = activityRule.getActivity().getIdlingresource();

    //去掉下行注释,只有异步结束后,才进行接下来的测试代码(tests passed)

    //注册异步监听,当该idlingresource中的counter标记值为0时才进行接下来的测试代码

    Espresso.registerIdlingResources(idlingresource);

    @Test

    public void onLoadingFinished() throws Exception {

    // 不再需要这样的代码

    // Thread.sleep(5000);

    // 未注册idlingResource时,立即进行test,此时异步并未结束,报错(tests failed)

    onView(withId(R.id.text))

    .check(matches(withText("success!")));

    @After

    public void release() throws Exception {

    //我们在测试结束后取消注册,释放资源

    Espresso.unregisterIdlingResources(idlingresource);

      测试过程中遇到的问题

      ViewAction()中的typeText()使用。

      如果直接调用typeText(),那么它的使用对象就一定是editText,如果是自定义的未继承editText的view使用typeText()时,要在使用前supportsInputMethods(),否则会报错误:

    onView(allOf(supportsInputMethods(), isDescendantOfA(withId(R.id.test)))).perform(typeText("111111"))

      在调用完typeText()后最好调用一下 closeSoftKeyboard(),否则会出现某些view在点击时被阻挡而报错。

    总结

      自动化测试的目的不仅仅是解放双手,它也可以让开发者提前知道某些小Bug,不用到了测试阶段才被提出来,这样就提升了开发的效率。

    展开全文
  • 自动化测试概念详解:1. Package:是指一个应用的标名,是Android系统中为每一个应用程序分配的一个标志,每个应用的标志都必须是不同的。查询应用的Package:aapt dump badging xxxx.apk |findstr "package"2. ...

    自动化测试概念详解:

    1. Package:是指一个应用的标名,是Android系统中为每一个应用程序分配的一个标志,每个应用的标志都必须是不同的。

    查询应用的Package:aapt dump badging xxxx.apk |findstr "package"

    2. Activity:是用户界面的概念,通常表示应用程序的一个屏幕,通常包含一个或多个view,也可以不包含view。

    查询应用的启动Activity:aapt dump badging xxxx.apk |findstr "launchable-activity"

    3. View:是UI元素,是构成用户界面的基本构建块。view可以是一个按钮,标签,文本或者各种UI的其他元素。命令行输入monitor可以查看界面元素。

    按开发阶段来划分依次分为:UI界面测试、集成测试、单元测试,今天咱们学习的内容是基于UI移动端的自动化测试基于用户界面层而展开的。

    35e981598418e3bcd19f5b894375a20e.png

    Appium工作原理分析

    1、左边的WebDriver script是我们的selenium测试脚本。

    2、中间是起的Appium的服务,Appium在这边起了一个Server(4723端口),跟seleniumWebdriver测试框架类似,Appium支持标准的WebDriver SONWireProtocol 。在这里提供了一套web服务,Appium Server接收web driver 标准请求,解析请求内容,调用对应的框架响应操作。

    如:脚本发送一个点击按钮的请求给appium server,

    3、appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.

    Bootstrap 接收appium 的命令(4724端口),最终通过调用UiAutomator的命令来实现。

    最后执行的结果由Bootstrap返回给appium server

    测试脚本-AppiumServer-Driver-Devices

    61602107f8d7bd9e42cba37b151a963e.png

    自动化测试案例剖析

    1.命令行输入"monitor"

    2.通过Android Devices Monitor来识别控件(View)的ID

    案例一:通过ID对控件进行点击或输入操作

    8042dc388e8fa62f1669eadfe93473e6.png

    3.自动化测试脚本开发

    4. 脚本脚本调试过程

    e2ed34ff53e9d9bad91d26ffd8c7c007.png

    5. 代码解释:使用Java代码实现View(控件)点击输入操作

    7406012127ebd854c6609858cc8ed5bd.png

    6. 通过View(控件)的Text属性捕获控件的情形:

    7ad2a04cfd4b5ddfffa410d9b53ceaab.png

    7. 通过View(控件)的Class与索引属性捕获控件的情形:

    1、view(控件)没有ID与Text属性。

    2、view(控件)有ID,但是ID不唯一。

    38d57412aadd94b307589a3edbdb1d97.png

    8. 通过class和索引查找控件

    以下代码是实现通过class属性控件来查找基于安卓界面的元素方法的封装,大家可以借鉴一下学习思路,以便更好的开展自动化测试。

    代码解释:使用Java代码实现View(控件)点击输入操作

    23b85faf8c15d998ad388cdf317e7992.png

    9. 对滚筒控件进行上下左右的滑动

    很多时候我们做移动端的功能测试,经常会使用上下或者左右滑动等相关操作,今天咱们这一小节主要告诉大家如果使用java代码来实现上下左右的滑动方法封装

    fabad663d1b486b295a18feffb56c85f.png

    对界面进行上下左右的滑动代码实现

    0bb0786d218f391664ad8b5c1e2f547e.png

    10. Android应用里面发语音信息经常会长按录音

    平时大家使用移动端app经常会碰到发语言长按录音按钮的功能,那这个功能如何定位元素?请看下图所示:

    22b9bc5046b2cfd87777f9045e27cbdc.png

    11. 使用Java代码实现界面拖拽

    基于自动化测试集的运用

    测试集的理解:

    顾名思义就是集合,通常我们把一个系统的所有脚本看做是一个大的集合(100个脚本),如果我们想取一个子集(7个脚本)来测试,那么我们可以把这7个脚本创建一个小的集合,即为测试集。

    测试集的应用场景:

    场景一:开发提交一个测试版本V5.0。我们通过分析之后要确认了可能会影响已有的几个功能,我们就可以把受影响的功能加到一个测试集,单独运行。

    场景二:在手动测试过程中,我们需要自动化脚本配合做一些测试数据或者进行一些其他的半自动化测试,那我们就可以把需要的脚本添加到测试集中运行。

    场景三:一个版本我们测试几轮之后功能已基本稳定,并且这些功能已经转化为自动化脚本。这时候开发突然又提交了一个bug的修复,需要我们再验证一下。那么这个时候我们就可以把自动化脚本添加到测试集来验证这些功能。

    一个系统分多个模块,一个模块有多个测试脚本,多个测试脚本组装成一个测试集,测试集可以理解成一个测试套件由多个用例组合或者可以理解成一个项目的多个测试用例即可。

    65fa0ecc6df232ae89c954e66047a2a9.png

    测试集合界面

    90eb2b3a11752e5db7589254f514d118.png

    2. 查看并分析测试结果界面如下图所示:

    7d6de81f89caa1c1710f3d7c5ef547b0.png

    自动化测试最重要的是基于编写的自动化测试脚本实现自动化测试从而得到相应的自动化测试结果,然后针对结果内容进行详细的分析,分析脚本执行通过率及系统的软件质量如何,一般是通过自动化测试报告来实现。

    总结:今天咱们主要学习了基于移动端自动化测试的相关概念及appium的工作原理,基于项目分享了一些相关案例,最后主要讲解了基于移动端元素定位方法的封装实现过程,包括最后的测试集、测试执行、测试报告、测试结果的呈现,与大家详细的讲解了基于Android自动化测试相关的知识点,希望大家掌握,如果觉得对自身有帮助欢迎关注与讨论。

    举报/反馈

    展开全文
  • 1. 安装jdk:略 检查是否安装:执行命令java -version admindeMacBook-Pro-2:~ $ java -version java version "1.8.0_171" Java(TM)... 以上安装全部完成,就可以打开安卓模拟器,安卓app,启动appnium进行UI自动化了。
  • 基于jxl.jar解析Excel xls文件自动化生成android多语言strings.xml
  • 构建一个自由风格的软件项目 ②参数构建过程-设置参数(后面构建中勾选Pass all job parameters as Project properties,不然设置的参数在项目中获取不到) ③安卓项目代码,gradle.properties文件中添加参数 BUILD_...
  • 如题,本文附有仓库地址以及代码,目录如下: 1.下载安装appium 2.配置并使用appium 3.配置工程 一、下载安装appium 下载appium-desktop的...UI Automator,google提供的自动化测试框架,appium集成了它。详细了解
  • Android自动化Robotium

    2018-04-24 14:20:39
    Android自动化 Robotium 封装的小工具,简单修改就可以用
  • 安卓自动化APP——Macrodroid

    千次阅读 2021-08-24 14:00:55
    本帖介绍了安卓自动化APP——Macrodroid。包括功能介绍、注意事项等。
  • 本资源详细介绍了如何构建基于java的安卓自动化测试,包含: 初级篇-环境搭建,如何使用uiautomatorviewer识别元素等 中级篇-如何简单的写安卓自动化测试代码 高级篇-如何封装简易框架实现高效的测试开发
  • 腾讯Android自动化测试实战
  • Android 自动化测试

    千次阅读 2020-05-29 14:39:38
    方法二:ADB命令执行自动化测试 生成androidTest安装包:gradlew jt808lib:assembleAndroidTest 安装测试包到目标设备:adb install 应用目录\jt808lib-Platform-debug-androidTest.apk 执行测试并输出结果到文件...
  • Android自动化的一般方法

    万次阅读 2018-07-02 16:53:23
    1背景https://mp.weixin.qq.com/s/B7o3JSkYI_9c4RivatsZKQAndroid自动化包含自动化测试和第三方App的自动化运行,这里的自动化测试主要指的是纯粹的黑盒测试,即在完全不了解代码逻辑的情况下编写的测试用例,可以...
  • uiautomator2:Android设备驱动 weditor:Android APP元素定位 allure:测试报告 1)python最新版本出到4.0了,但是实际使用4.0和allure有些不兼容. 所以推荐使用3.8版本的pytest 2)uiautomator2 uiautomator2也是...
  • 1、安装apk adb install apk路径 2、获取android的deviceName adb devices 3、获取packageName以及activityName adb shell dumpsys activity activities | grep mResumedActivity
  • 这是一个安卓基于appium自动化测试的例子,用个是我上传时间这个点微信最新版本的apk
  • kooup安卓自动化

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 302,681
精华内容 121,072
关键字:

安卓自动化

友情链接: forward_converter.zip