精华内容
下载资源
问答
  • uitest
    千次阅读
    2021-11-04 13:54:54

    在 macOS 上设置 Xamarin 环境

    我们首先通过安装 Visual Studio for Mac 来设置 macOS 环境。

    我们可以先下载 Visual Studio for Mac。
    下载并安装 Visual Studio for Mac 开发环境后,会提示我们安装选项。

    在目标部分中选择 Android 和 iOS,然后单击安装和更新(如果有更新)按钮。

    安装 vs for mac

    在 Visual Studio for Mac 上创建新项目

    安装完成后,我们将看到一个对话框,其中包含打开或创建新项目的选项。

    由于我们已经在上一篇博客中创建了一个跨平台的 Xamarin.Forms 应用程序并使用 Xamarin.UITest 对其进行了示例测试,因此很容易将项目代码带到 macOS 机器上。

    使用 Visual Studio for Mac 打开项目。

    安卓项目

    项目构建完成后,我们可以在 Android 设备上安装我们的 Xamarin.Forms 应用程序。
    然后,我们可以对 Android 设备运行Xamarin.UITest测试。

    在 android 设备上运行 xamarin.uitest 测试

    iOS项目

    要在Xamarin iOS平台上启动应用程序,我们需要将我们的开发环境更改为ATXamarin.iOS的必要配置。此外,我们应该取消注释[TestFixture(Platform.iOS)]平台。

    在 ios 设备上安装 xamarin 应用程序

    要安装应用程序,我们需要选择模拟器(将安装和启动应用程序的位置)并单击“播放”按钮。

    在我们的例子中,我们将选择 iPhone 11 (iOS 13.3) 的模拟器。

    若要运行 Xamarin.UITest 测试,我们需要更改AppInitializer.cs类的配置。

    为此,我们必须在 AppBundle 方法中获取应用程序的路径。路径应该相对于我们测试的文件夹指定。

    显然,我们也必须指定模拟器的标识符。

    为了获得这个标识符,我们可以使用以下命令:

    xcrun instruments -s devices
    

    我们需要 iPhone 11 (iOS 13.3) 的标识符。

    在我们输入所有必要的数据后,我们可以运行我们的测试。但是在这个阶段,Calabash 组件的自定义可能会出现错误。

    我们需要为 ATXamarin.iOS 项目安装 Xamarin 测试云代理。

    添加包后,我们要在AppDelegate.cs类中输入如下代码块:

    #if ENABLE_TEST_CLOUD
      Xamarin.Calabash.Start();
    #endif
    

    之后,我们可以在 iOS 模拟器上运行 Xamarin.UITest 测试。
    测试完成后,我们会看到一个新创建的项目(类似于在Android设备上运行测试后创建的项目)。

    更多相关内容
  • UITest

    2021-02-21 07:23:39
    UITest
  • 吞咽测试 吞咽测试分期付款$ npm i gulp-uitest --save-dev用法 var uitest = require ( 'gulp-uitest' ) ;gulp . task ( 'test' , [ ] , function ( ) { return gulp . src ( 'path/to/index.html' ) . pipe ( ui...
  • UITest 测试javascript用户界面
  • Xappium.UITest编写跨平台(X-Plat)应用程序可能是一个挑战。寻找一种更容易编写和运行集成UI测试的方法可能更具挑战性。 Xappium.UITest旨在通过在Appium上构建一个额外的抽象层来帮助解决其中的一些问题,从而使...
  • Xappium.UITest 编写跨平台(X-Plat)应用程序可能是一个挑战。 寻找一种更容易编写和运行集成UI测试的方法可能更具挑战性。 Xappium.UITest旨在通过在Appium上构建一个额外的抽象层来帮助解决其中的一些问题,从而...
  • 此示例旨在在Visual Studio中使用,并包括Android和iOS平台上的Xamarin.Forms应用程序的源代码以及Xamarin.UITest项目。它还包含一个预编译的APK和IPA,以防您仅尝试构建,运行和上载Xamarin.UITest的情况。 在本地...
  • 最佳 在浏览器环境中运行mocha。 贡献者 该项目遵循git-contributor,该于Fri Aug 02 2019 20:51:29 GMT+0800日Fri Aug 02 2019 20:51:... 如需更多帮助,请访问: macacajs.github.io/uitest 执照 MIT许可证(MIT)
  • 将目录设为src/XE/UITest/Selenium/files并将权限设置为 707 测试 실행 vendor/bin/phpunit -c app/phpunit.xml 설정파일을 변경하여 测试 실행 XE_SELENIUM_CONFIG=/config_file_name....
  • 下面介绍如何使用Coded UI Test的录制和播放功能,实现一个简单的自动化测试: 首先必须确定你所使用的VS2010是Ultimate和Premium版本,其他版本没有Coded UI Test的功能 打开VS2010 -> 创建一个Test的...

    下面介绍如何使用Coded UI Test的录制和播放功能,实现一个简单的自动化测试:

    • 首先必须确定你所使用的VS2010是Ultimate和Premium版本,其他版本没有Coded UI Test的功能

    • 打开VS2010  -> 创建一个Test的项目

    • 在Solution的窗口中,鼠标右击你的项目上添加一个Coded UI Test的文件

    • 跳出一个提示创建Coded UI Test的窗口,点击OK按钮

    • 此时会在屏幕右下角出现一个控制条,点击红色圆圈按钮,Code UI Test就开始录制你的UI操作

    • 我们将做一个简单的UI自动化测试,测试当前操作系统是不是Windows XP

    • 鼠标右击我的电脑,点击属性

    • 点击暂停按钮,再点击生成代码的按钮

    • 在弹出的窗口中,确认你想要的录制方法名,再点击Add and Generate按钮生成代码

    • 拖住瞄准的按钮,放置我们要验证的UI控件上

    • 此时会出现被选中的UI控件的属性窗口

    • 选中想验证的属性,这里我们选“DisplayText”,然后点击Add assertion 按钮,确认验证的方式和验证的值,最后点击OK按钮

    • 点击生成代码的按钮,在弹出的窗口中,确认你想要的验证方法名,点击Add and Generate按钮生成代码

    • 点关闭按钮结束脚本录制

    • 该如何播放前面录制的代码呢?首先编译你的项目,然后双击TestProject1.vsmdi文件,选中你的测试方法,点击Run按钮

    • 之后你会看到鼠标自动移至我的电脑,打开属性窗口,执行之前录制的验证功能,若验证成功会显示通过信息

    • 现在我们把验证的期望值从“Microsoft Windows XP”改成 “Microsoft Windows 7”看看结果会如何?首先双击打开Designer.cs,在验证的方法里我们会找到存放期望值的变量,修改之后再此运行脚本

    • 在运行脚本时,发现期望值“Microsoft Windows 7”和实际的操作系统“Microsoft Windows XP”不符,故验证失败

          到此为止,一个简单的Coded UI Test的录制和播放功能就演示完毕了。

    转载于:https://www.cnblogs.com/lenshen/archive/2012/05/28/2521364.html

    展开全文
  • iOS swift UITest 基础入门(一)

    千次阅读 2018-09-15 01:22:43
    在项目组内做UITest几个月了,输出才是真正的提高嘛,总结了一下,写出来做一个UITest的讲解. 首先说一下目的:UITest,可以模拟人的操作,当然还可以使用第三方用以模拟网络请求,再加上数据库操作等,实现完全的自动化全...

    在项目组内做UITest几个月了,输出才是真正的提高嘛,总结了一下,写出来做一个UITest的讲解.

    首先说一下目的:UITest,可以模拟人的操作,当然还可以使用第三方用以模拟网络请求,再加上数据库操作等,实现完全的自动化全流程测试(大概是这么个词),在这个过程中可以设定网络返回的数据,设定数据库中的值等等来测试各种case. 下班的时候Command+U一下就可以跑所有的测试类测试case,早上来就可以收割问题了.

    下面从建类开始讲.

    1,UITest类的创建.

     

    如图所示,在工程主文件夹的相应UITest文件夹下添加UITestCaseClass,选择swift建立类.类名在开发的时候,一般以viewController为单位建立相应的test类,类名一般取XXXViewControllerUITests,方便查找和跑相应的测试.

    类建好后,样子如下图(注意当前UITest类的target是不是UITest,有些时候建完默认是UnitTest,要手动点回来,否则跑不起来):

    当前测试类函数的调用顺序讲一下:

    每一个testXXX测试函数,都会调用一次setUp()函数,然后运行自身,最后调用tearDown()函数.默认在setUp函数里要预制你的数据(数据库写入等等),调用.launch函数启动APP,在tearDown()函数里清除掉你的数据,关掉APP.

    setUp里的.launch()函数是app启动.我一般都删掉这个,自定义一个启动函数放到各个test函数里,这样就可以在启动的时候在自己的测试函数里加载针对每个测试函数自己定义的数据库文件网络返回数据文件等等.另外,我司的项目中,测试数据都写在realm的内存数据库中,所以没有写清除数据的代码.这些先不关注,先来看看重点的testExample函数.

    2,测试函数testXXX

    testExample函数是苹果举的一个例子.所有测试函数都要类似testXXX,以test开头,这样测试函数才可以跑起来,函数前面才会有那个菱形的小框.很多时候系统反应慢,建完函数build一下就有了.

     

    把光标放到函数里面,下面的红色就圆点就会变为深红色的可点击状态.点击这个就可以开始录制代码了.

    3,录制代码

    录制代码是UITest中比较简单获取页面控件和动作代码的方式,app启动,点击,翻页,滑动等等都可以转变成代码,但是在我熟悉了各种语法之后,只在起始阶段用它来录制基本流程代码,然后用我自己熟悉的代码改写.原因就在于录制的代码又臭又长,而且有时候跑不起来,最要命的是各个机种还有差异,一套代码跑不了几个机型.

    XCode左上角目标设备选一个模拟器,保持光标在函数内,点击红色小圆点也就是录制按钮,模拟器启动,开始生成代码.下面来看看操作几下之后录制的代码,关键字与正常的swift代码有很大区别:

    关于代码中的控件获取方式:

    1, 如app.buttons[“identifer”] 通过button的title或者设置的identifer获取button,类似的还有app.tables, app.textFields,app.staticTexts等等.有个Xcode工具也能提供一些帮助:

    有些设置了accessibility identifier的控件直接就用工具确认OK就读出来了,有些用value也可以读出来,大多数时候我更喜欢用模糊匹配来获取控件.

    如:let myPredicate = NSPredicate(format: "value like '*1999年*'")
                let wheel = app.pickerWheels.element(matching: myPredicate)

    2,app.children(matching:.window).element(boundBy: 0).children(matching: .other) 

    //matching后面是控件类型枚举值,有几十种,element(boundBy:0)这里就是选择第0个window控件.通过这种控件过滤及嵌套查找,可以随意找到我们想要的大部分控件.注意嵌套太长的话尽量找替代方法,比如用identifier,否则太影响阅读了. 适合没有title的button,没有placeHolder的textField这种控件使用.

    点击程序停止按钮或者停止录制按钮,结束录制代码.录制好的代码(补上去一点断言就是最基本的测试代码了)点击test函数前面的小菱形即可运行,如运行成功无错误菱形会变成绿色,测试失败会变成红色.点击类名前面的菱形运行整个类的测试代码,command+U运行整个程序的测试代码.

    下面关于语句略做讲解:

    4,常用语句

    UITest函数运行的时候可以看到新生成了一个TestAPP,然后才是我们的APP启动.这里获取控件都是XCUIElement,可以看到,代码大意描述了获取各种element(对应被测试APP内的各种label,button控件)然后做动作(如tap()),整个UITest基本都是类似的套路,还是可以很容易学明白.

    下面注解一下常用的代码的意思:

    #1 XCUIApplication() 获取正在运行的app, XCUIApplication类里常用的方法

         ##1 launchArguments与launchEnvironment  用来在测试前在自己喜欢的位置加载数据等等.

           例如测试函数加入以下代码:

    func testExampleForLogin() {

            let app = XCUIApplication()
            app.launchArguments = ["TEST"]
            var launchEnvironment = [String : String]()
            launchEnvironment["TEST"] = *文件名*
            launchEnvironment["TEST_FILE"] = *另一个用途的文件名*
            app.launchEnvironment = launchEnvironment
            app.launch()

    //以下略

    }

    AppDelegate加入以下代码:

               #if DEBUG
            if ProcessInfo.processInfo.arguments.contains("TEST") {
                //某些处理:如测试数据库初始化,读取stub数据等等

                 readData()
            } else {
                //其他数据库初始化
            }
            #else
            //正常调用
            #endif

    数据加载类:

    func readData() {

        //通过这个读取到测试函数要加载的JSON或者数据库文件的文件名,然后进行加载,设置stub或者写入数据库等等.

          let stubInfoJsonString = ProcessInfo.processInfo.environment["TEST"]

          //以下略

    }

      ##2 frame

    XCUIApplication也是XCUIElement(一会再介绍这个控件类)的子类,有个frame属性比较重要,在测试代码中有时候要获取屏幕的宽高(比如判断iphone4或者x),用UIScreen不同的机型都会获取到同一个宽高,所以不能用UIScreen,XCUIApplication().frame获取的才是当前模拟器的宽高.

         #2 等待控件加载函数func wait(for expectations: [XCTestExpectation], timeout seconds: TimeInterval) -> XCTWaiter.Result

    用来等待控件加载,比如加载的菊花转的时候等待遮罩下面一个button可以点击是靠谱的.(其实alert不用等,类比一下哈).当然也是可以用sleep函数来等待的,但是比较low.代码review的时候容易被吊起来打.

            let myPredicate = NSPredicate(format: "exists == true")
            let myExpectation = expectation(for: myPredicate,
                                            evaluatedWith: element,
                                            handler: nil)

            let result = XCTWaiter.wait(for: [myExpectation], timeout: time)

    封装一下,结果加个断言就可以直接用了.

         #3 UITest中的NSObject --- @available(iOS 9.0, *) XCUIElement

    主角介绍晚了,测试里各种元素的父类,前面的9.0标志着用XCUIElement做UITest要9.0以上啦.所以我们测试的时候以9.0开始,但9.x的版本实在是恶心,各种bug,各种代码不适配(录制我一般用iphone8 11.x版本,没办法,就是顺滑),屏幕类型包含4和5,小屏幕加低版本,动作有时候很怪异.实在要测9.x+4s的时候我一般用9.3版本.9.0似乎根本跑不起来自动测试.大致介绍一下他的成员及函数,都比较简单.

          ##1 exists   控件是否存在,配合断言使用

          ##2 waitForExistence 等待出现.可以加timeout,配合断言使用

          ##3 isHittable 是否可以点击,配合断言使用

          ##4 children 返回子元素查询结果集

    例: let textField1 = XCUIApplication().scrollViews.otherElements.containing(.staticText, identifier:"ID").children(matching: .textField).element //一般模拟器自动录代码会出现这种长度的代码,我们写的时候直接 app.TextFields["ID"]就可以获取到了.

          ##5 func coordinate(withNormalizedOffset normalizedOffset: CGVector) -> XCUICoordinate 控件中的某个位置坐标,其中CGVector是指定位置在控件中的横竖比例(控件总长横竖均为1,算比例),这个函数配合press函数是实现精确滑动动作(某个控件的指定位置滑到另一个控件的指定位置)的必用函数,很简单也很好用.

          ##6 typeText 文本框输入指定文字必备方法,可以不调用键盘打键(调用软键盘打字太慢了...)

          ##7 tap() 点击,其他还有doubleTap()等等

          ##8 press(forDuration duration: TimeInterval, thenDragTo otherElement: XCUIElement) press函数带dragTo, 配合coordinate函数,精确滑动,很是舒服.例:

    aTableViewCell.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: offset)).press(forDuration: 0.2, thenDragTo:  bTableView.coordinate(withNormalizedOffset: CGVector(dx: 0.8, dy: 0.1)))  //一个cell滑动到另一个cell的位置.

         ##9 swipeUp(),swipeDown(),swipeLeft(),swipeRight() 上下左右滑控件

        #4 XCTAssert 断言类

    Test类如果没有断言,基本就失去了一大半的意义,断言出错会留下log和标记,我们可以直接找到错误的地方然后对程序做对应的修改.没有断言或者断言少的测试case,失败的时候函数前面显示个红色x,但是根本找不到错在哪里.断言用起来很简单:

    XCTAssert(xxxResult == .completed, "LOG用语句")

    XCTAssertTrue(app.textFields["0999999"].exists)
    XCTAssertFalse(app.buttons[“Login”].isEnabled)

    XCTAssertEqual(secureTextField.value as? String, "")  //两个是否相等

    ---TO BE CONTINUE---

    后半夜了,明天继续写,还有其他语句介绍以及网络mock第三方OHHTTPStubs 和 长一点的测试代码样例可以写.

     

     

     

     

    展开全文
  • 多年前根据项目需求自己反编译UISpy写的一个小工具。主要是用来抓取control tree根据每个控件属性生成该控件在tree view中的路径。目的是为了做UI自动化测试。
  • LibGDX_UITest

    2021-05-02 03:14:28
    LibGDX_UITest
  • Xablu UITest 设置和用法 在NuGet上可用: : 安装到利用此功能的每个项目中
  • 魔术师快速将ID添加到可与UITest和Xamarin Test Cloud一起使用的现有应用程序的UI元素的实用程序。如何使用下拉解决方案并在Xamarin Studio中构建UITestIdGenerator.Mac 。 当应用程序启动,只需拖放您.storyboard或...
  • Android UI Test Agent-开源

    2021-04-26 05:26:51
    这是用于Android UI测试
  • UITest提供了UI适配方案,妈妈再也不用担心我的屏幕适配啦@##@
  • 继上篇文章介绍了XCTest中的单元测试,这片土地主要介绍下苹果官方测试框架XCTest中的的UITest。 1、UITest简介 UI Tests是一个自动测试UI与交互的Testing组件。UI testing允许你找到UI元素并与之交互,还能检查...

    继上篇文章介绍了XCTest中的单元测试,这片土地主要介绍下苹果官方测试框架XCTest中的的UITest。

    1、UITest简介

            UI Tests是一个自动测试UI与交互的Testing组件。UI testing允许你找到UI元素并与之交互,还能检查属性和状态.可以和单元测试一起执行. UITest使用的OC/Swift语言的自动化测试。

            可以通过编写代码、或者是记录开发者的操作过程并代码化,来实现自动点击某个按钮、视图,或者自动输入文字等功能。随着项目功能的增加,旧功能也需要重新测试,导致了大量重复工作,这些重复的工作有些是可以自动完成的,UI Tests就可以帮助解决这个问题了。

     

    2、UITest进行UI测试

    1)创建一个UI测试target

    UI测试target的创建方法类似于单元测试的创建方式,也是有两种,只是选择的target类型不同

    方式一:通过创建新项目时,勾选 Include UI Tests

    方式二:在已存在的项目中创建,按comman+5 打开xcode的测试导航器,点击左下角的+ 按钮,然后从菜单中选择New UI Test Target…

                                                   

    2)如果已有target,想新建不同的测试类,按command+n 打开新建文件,选择UI Test Case Class,创建不同的UI测试文件

    3)运行方式

    UI测试文件的运行方式也是command+u,测试全部,或者点击类/方法的钻石标志

    4)UI测试文件的使用

    文件创建好后,会自动创建以下函数

    从注释我们可以知道这3个函数的意思

    函数用途
    setUp 

    1)继承与XCTestCase 函数测试文件开始执行的时候运行 

    2)setup中的XCUIApplication().launch()用于启动app

    3)可以自定义一个setup函数,将launch方法调用放在自定义函数里,然后添加自己的数据加载

    tearDown 继承与XCTestCase 测试函数运行完之后执行
    testExample 测试的例子函数

    (1)将自带的testExample删除,添加testUI,方法是空白的

    (2)光标放进到这个大括号里面,看到如下图中 的小红点。点击这个录制屏幕的按钮。应用启动。我们点击项目中的按钮跳转,函数中会根据您的操作自动生成代码

    (3)你可以点击该函数的钻石标志运行,会重复您刚才的操作

    (4)您也可以在操作代码自动加入后,或者手写操作代码后,加入断言判断是否是您想要的结果。

    5)常用基本操作

    (1)点击按钮:app.buttons["登录"].tap()

    (2)输入框输入文本

    app.textFields["手机号"].tap()    //要先聚焦文本框,才能继续输入

    app.textFields["手机号"].typeText("13038865629")

    等等

     

    3、代码中控件的获取方式

    类似于 app.buttons["TDD驱动测试界面"] 这样的,如果我们需要人为手写操作代码,如何获取控件,可以通过button的title或者设置的identifer获取button,类似的还有app.tables, app.textFields,app.staticTexts等等.

    xcode也有一个帮助工具 Accessibility Inspector 来获取控件的属性

    点击中间的按钮,选中控件,可以看到控件的属性,我们一般利用其title来获取控件

    到此,UITest的简单使用就介绍完了......

     

    展开全文
  • JavaScript应用实例-uitest - 副本.js
  • Xamarin.UITest 页面对象Xamarin Studio 插件这是 Xamarin Studio 的插件,它添加了支持测试开发的页面对象模式 (POP) 的新文件模板。 使用这些模板,您可以将测试极大地简化为流畅的 API,读取起来非常自然,而不是...
  • 最佳样本 尝试Selenium化
  • iOS开发 UITest的使用

    千次阅读 2017-01-17 12:04:10
    在Xcode,创建工程时给我们提供了UITest,这对于我们测试很方便,因为它被称之为自动化测试。下来不多说,我们进入UITest的学习,和基本使用。 首先我们的工程要有UITest这个Tag。这个我们可以在创建工程的时候选
  • WinSpy_winspy_uiautomation_UISpy工具下载_uitest_uispy下载.zip
  • WinSpy_winspy_uiautomation_UISpy工具下载_uitest_uispy下载_源码.zip
  • Coded UI Test(一)概述

    2019-07-03 17:44:03
    Visual Studio 2010 Ultimate 和 Visual Studio 2010 Premium 这两个版本配备了一个名为Coded UI TestUI自动化测试的工具,它提供了UI界面的功能测试和UI界面上控件的验证。UI自动化测试可以很方便地根据不同的...
  • CodedUI test code for excel

    2015-02-08 19:39:13
    CodedUI test code for excel
  • 在Visual Studio中,Coded UI Test已经不是什么新特性了,较早版本的Visual Studio中就已经有这个东东了。它主要用来帮助自动化测试工程师和开发人员确保程序在UI方面没有任何问题。这其中包含了丰富的内容。在这...
  • Xcode7 UITest UnitTest 自动化测试学习

    万次阅读 2016-05-20 13:54:31
    创建UITest target,同样会生成一个“项目名称”+UITest的group,UITest target可以在创建工程的时间勾选,也可以在工程中手动添加,在 “项目名称”+UITest 分组下,我们可以看到系统会帮我们默认生成一个UI测试...
  • UITest录制

    千次阅读 2016-03-23 14:46:15
    使用UITest进行录制的时候
  • iOS开发之交互测试/UI Test

    千次阅读 2016-06-24 17:27:40
    UI Test

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 369,258
精华内容 147,703
关键字:

uitest

友情链接: PowerSolutionDOTNetOLE.rar