Fastbot is a model-based testing tool for modeling GUI transitions to discover app stability problems

Related tags

Testing Fastbot_iOS
Overview

Introduction

Fastbot is a model-based testing tool for modeling GUI transitions to discover app stability problems. It combines machine learning and reinforcement learning techniques to assist discovery in a more intelligent way.

Related: Fastbot_Android

***More detail see at Fastbot architecture

Prepare test environment

  • cd Fastbot-iOS && pod install --repo-update
  • Open Fastbot-iOS.xcworkspace, Set FastbotRunner Signing & Capabilities and Bundle ID
  • USB connected the device & trust the device, if you're using a simulator, start up the simulator
  • Open FastbotRunner network permission (unnecessary for simulator), a sample on device 00008030-001054A80C82802E:
BUNDLEID=com.apple.Pages duration=240 throttle=300 xcodebuild test  -workspace Fastbot-iOS.xcworkspace -scheme FastbotRunner  -configuration Release  -destination 'platform=iOS,id=00008030-001804563E44802E' -only-testing:FastbotRunner/FastbotRunner/testPingNetwork
    • By tapping FastbotRunner on the device, the screen of the device would go black for about one minute. During the black screen interval, users should press the home button on the device to go back to the main screen. Wait patiently until the network setting dialog window pops up. Users should allow the pop up request in order to continue.
    • If "ping network success" appears in the console log, that means get network permission successful

Run Test

  • Ensure that your application can run on the device. (Installed and trusted)
  • Environment Variables should be setted in command line or Xcode IDE/Scheme/Test
key note sample
BUNDLEID Test App's Bundle ID com.apple.Pages
duration Test duration, units of minutes 300
launchenv Start arguments for Test APP, can be empty or key-values separated with ":" isAutoTestUI=1:channel=AutoTest
throttle Throttle for operate, units of millisecond 300
  • A sample run test on device 00008030-001054A80C82802E. if IDE scheme Env Vars changed , command Env Var would be void:
BUNDLEID=com.apple.Pages duration=240 throttle=300 xcodebuild test  -workspace Fastbot-iOS.xcworkspace -scheme FastbotRunner  -configuration Release  -destination 'platform=iOS,id=00008030-001804563E44802E' -only-testing:FastbotRunner/FastbotRunner/testFastbot

More detail see at 中文手册


Advanced Extension

Stub mode: Target dynamic library fastbot_stub. Stub mode requires injection of fastbot_stub into the test app. The library captures GUI structure by parsing the app under test for fastbot. More customized features (eg. hook callback, cut View) can be constructed by users for additional abilities such as blocking certain view from being clicked, customized ViewControllers, etc.

We highly appreciate any contribution from the community !!!

Usage: After injecting fastbot_stub to app, you need:

key sample
launchenv stubPort=9797
dataport 9797

Analytics

To prioritize and improve Fastbot-iOS, FastbotRunner collects usage data and uploads it to Google Analytics. FastbotRunner collects the md5 hash of the test app's Bundle ID, this information allows us to measure the volume of usage. If they wish, users can choose to disable the Analytics by skip step Open FastbotRunner network permission or change FastbotRunner's Wireless Data to off in System Preference.


Support

  • Public technical discussion on github is preferred.

  • Q&A:

    Q: Get Error when pod install --repo-update
    A: install pod firstly sudo gem install cocoapods -v=1.8.1

    Q: Get Error: Assert Fail Timed out while evaluating UI query
    A: Restart test or Replug USB or Change a USB line or Restart iPhone

    Q: Get Error when use simulator
    A: Change to Debug Mode in scheme setting

    Q: Get unkown install Error:com.apple.dt.MobileDeviceErrorDomain
    A: Check your signing certificate or Replug USB or Change a USB line or Restart iPhone


License

Copyright©2021 Bytedance

Licensed under MIT

Fastbot-iOS required some features are based on or derives from projects below:

Comments
  • 使用tidevice执行Fastbot iOS, 支持Windows上执行

    使用tidevice执行Fastbot iOS, 支持Windows上执行

    • 执行命令(Fastbot的参数使用-e 指定)
    tidevice xctest -B fastbot的bundle_id -e BUNDLEID:被测应用的bundle_id -e duration:测试时长 -e throttle:300
    
    • 实际例子(基于QQ音乐)
    tidevice xctest -B bytedance.FastbotRunner -e BUNDLEID:com.tencent.QQMusic -e duration:5 --debug
    
    documentation enhancement good first issue 
    opened by jongyu 9
  •  Fastbot -iOS在如图界面停留了超过半小时还不出来,好不容易出来,没几分钟,又再次进去,又玩半个小时,绝望。。。

    Fastbot -iOS在如图界面停留了超过半小时还不出来,好不容易出来,没几分钟,又再次进去,又玩半个小时,绝望。。。

    我的 app 主页有 5 个按钮作为入口,这个入口在右上角(如图二),Fastbot -iOS在(如图一)界面停留了超过半小时还不出来,好不容易出来,没几分钟,又再次进去,又玩半个小时,绝望。。。不知道为什么进入这里的频率和时长这么久。

    这个页面需要点击四个CheckBox(或者 CheckBox 后面的文本也是点击区域)才能出去到主页面,Fastbot -iOS有时候也把这四个CheckBox点击出去了,但是没过两分钟,又进去了,我真的是气死了。

    希望Fastbot -iOS能处理这种情况,不要在这里停留太久,就算停留很久,也不要再次进入了,否则完全无法起到遍历的效果啊。

    IMG_8805

    image
    opened by shark-666 7
  • 执行testPingNetwork报错,麻烦看下。

    执行testPingNetwork报错,麻烦看下。

    Ld /Users/hspcadmin/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ecjlnosjaifznhcycjsrnhjqvewf/Build/Products/Debug-iphoneos/FastbotRunner-Runner.app/PlugIns/FastbotRunner.xctest/FastbotRunner normal (in target 'FastbotRunner' from project 'Fastbot-iOS') cd /Users/hspcadmin/Desktop/Fastbot_iOS/Fastbot-iOS /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -target arm64-apple-ios9.0 -bundle -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk -L/Users/hspcadmin/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ecjlnosjaifznhcycjsrnhjqvewf/Build/Products/Debug-iphoneos -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib -F/Users/hspcadmin/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ecjlnosjaifznhcycjsrnhjqvewf/Build/Products/Debug-iphoneos -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -F/Users/hspcadmin/Desktop/Fastbot_iOS/Fastbot-iOS/Pods/../fastbot -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk/Developer/Library/Frameworks -filelist /Users/hspcadmin/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ecjlnosjaifznhcycjsrnhjqvewf/Build/Intermediates.noindex/Fastbot-iOS.build/Debug-iphoneos/FastbotRunner.build/Objects-normal/arm64/FastbotRunner.LinkFileList -Xlinker -rpath -Xlinker @loader_path/Frameworks -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -dead_strip -Xlinker -object_path_lto -Xlinker /Users/hspcadmin/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ecjlnosjaifznhcycjsrnhjqvewf/Build/Intermediates.noindex/Fastbot-iOS.build/Debug-iphoneos/FastbotRunner.build/Objects-normal/arm64/FastbotRunner_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -fobjc-arc -fobjc-link-runtime -ObjC -lxml2.2 -framework FastbotLib -framework XCTAutomationSupport -framework XCTest -framework fastbot_cv -framework fastbot_native -framework XCTest -lPods-FastbotRunner -Xlinker -no_adhoc_codesign -Xlinker -dependency_info -Xlinker /Users/hspcadmin/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ecjlnosjaifznhcycjsrnhjqvewf/Build/Intermediates.noindex/Fastbot-iOS.build/Debug-iphoneos/FastbotRunner.build/Objects-normal/arm64/FastbotRunner_dependency_info.dat -o /Users/hspcadmin/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ecjlnosjaifznhcycjsrnhjqvewf/Build/Products/Debug-iphoneos/FastbotRunner-Runner.app/PlugIns/FastbotRunner.xctest/FastbotRunner

    ld: library not found for -lPods-FastbotRunner

    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    documentation 
    opened by pxrgod 6
  • 运行出现报错无法截图

    运行出现报错无法截图

    2021-08-04 13:40:41.317466+0800 FastbotRunner-Runner[447:28160] get desc failed 0 t = 478.07s Pressing Home button t = 480.18s Open com.ihoment.GoVeeSensor t = 480.18s Activate com.ihoment.GoVeeSensor t = 480.19s Wait for com.ihoment.GoVeeSensor to idle :0: error: -[FastbotRunner testFastbot] : Failed to get screenshot: Timed out while requesting screenshot. t = 481.21s Tear Down Test Case '-[FastbotRunner testFastbot]' failed (484.085 seconds).

    question 
    opened by Jerrywang77 4
  • run test时,运行一段时间后,线程被kill

    run test时,运行一段时间后,线程被kill

    xcode log:[fastbot] : build state cost: 0.000s action cost: 0.000s total cost 0.000s 2021-08-04 05:14:08.915766+0800 FastbotRunner-Runner[696:369904] ticker shot desc cost 0.059585 netact 0.000556 second, left 18108.826298s t = 25099.91s Open com.bilibili.bilianime t = 25100.01s Activate com.bilibili.bilianime /Users/wangshaoce/bilibili_test/Fastbot_iOS/Fastbot-iOS/FastbotRunner/FastbotRunner.m:73: error: -[FastbotRunner testFastbot] : Failed to launch com.bilibili.bilianime: 未能完成该操作。Unable to launch com.bilibili.bilianime because the device was not, or could not be, unlocked. /Users/wangshaoce/bilibili_test/Fastbot_iOS/Fastbot-iOS/FastbotRunner/FastbotRunner.m:73: error: -[FastbotRunner testFastbot] : Failed to activate application 'com.bilibili.bilianime' (current state: Running Background Suspended) t = 25160.18s Wait for com.bilibili.bilianime to idle t = 25161.29s Tear Down 2021-08-04 05:15:16.453698+0800 FastbotRunner-Runner[696:178321] state g0s5590 action SCROLL_TOP_DOWN pos[4,19,410,70] throttle 0.10 Test Case '-[FastbotRunner testFastbot]' failed (25166.559 seconds). Test Suite 'FastbotRunner' failed at 2021-08-04 05:15:16.560. Executed 1 test, with 2 failures (0 unexpected) in 25166.559 (25166.560) seconds Test Suite 'FastbotRunner.xctest' failed at 2021-08-04 05:15:16.563. Executed 1 test, with 2 failures (0 unexpected) in 25166.559 (25166.563) seconds Test Suite 'Selected tests' failed at 2021-08-04 05:15:16.572. Executed 1 test, with 2 failures (0 unexpected) in 25166.559 (25166.573) seconds [fastbot] : select new action from unvisited Unsaturated [fastbot] : total visit count is 52568 [fastbot] : state visited: 3 [fastbot] : action first visited, get reward 1.000000 [fastbot] : got reward: 18.1485 [fastbot] : build state cost: 0.000s action cost: 0.000s total cost 0.000s 2021-08-04 05:15:18.738365+0800 FastbotRunner-Runner[696:178321] state g0s3586 action SCROLL_RIGHT_LEFT pos[2,2,410,926] throttle 0.10 FastbotRunner-Runner(696,0x16d197000) malloc: *** error for object 0x2825de390: pointer being freed was not allocated FastbotRunner-Runner(696,0x16d197000) malloc: *** set a breakpoint in malloc_error_break to debug (lldb)

    启动命令: image

    bug question 
    opened by wangshaoce 4
  • App crash 之后,一直循环出现网络未连接

    App crash 之后,一直循环出现网络未连接

    执行命令 tidevice xctest -B bytedance.FastbotRunnermenmen.xctrunner -e BUNDLEID:com.xiaomi.mihome.dailybuild -e duration:5 --debug

    app crash 之前一切正常,app crash 之后提示如下 命令窗口消息

    [D 210804 11:01:09 _instruments:606] Ignore notification from server: 2189, 0x2, ('outputReceived:fromProcess:atTime:', ['2021-07-07 01:36:30.981371+0800 FastbotRunner-Runner[360:16170] Task .<156> HTTP load failed (error code: -1009 [1:50])\n2021-07-07 01:36:30.981845+0800 FastbotRunner-Runner[360:16170] Task .<156> finished with error - code: -1009\n', 360, 50461342180]) [D 210804 11:01:09 _instruments:591] DTXMessage: expects_reply:0 flags:2 ('outputReceived:fromProcess:atTime:', ['2021-07-07 01:36:30.982993+0800 FastbotRunner-Runner[360:16170] error Error Domain=NSURLErrorDomain Code=-1009 "似乎已断开与互联网的连接。" UserInfo={NSUnderlyingError=0x280555aa0 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=http://www.bytedance.com/, NSErrorFailingURLKey=http://www.bytedance.com/, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=50, NSLocalizedDescription= 似乎已断开与互联网的连接。}\n', 360, 50461395943]) [D 210804 11:01:09 _device:944] logProcess: 2021-07-07 01:36:30.982993+0800 FastbotRunner-Runner[360:16170] error Error Domain=NSURLErrorDomain Code=-1009 "似乎已断开与互联网的连接。" UserInfo={NSUnderlyingError=0x280555aa0 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=http://www.bytedance.com/, NSErrorFailingURLKey=http://www.bytedance.com/, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=50, NSLocalizedDescription=似乎已断开与互联网的连接。} [D 210804 11:01:09 _instruments:606] Ignore notification from server: 2190, 0x2, ('outputReceived:fromProcess:atTime:', ['2021-07-07 01:36:30.982993+0800 FastbotRunner-Runner[360:16170] error Error Domain=NSURLErrorDomain Code=-1009 "似乎已断开与互联网的连接。" UserInfo={NSUnderlyingError=0x280555aa0 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=http://www.bytedance.com/, NSErrorFailingURLKey=http://www.bytedance.com/, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=50, NSLocalizedDescription=似乎已断开与互联网的连接。}\n', 360, 50461395943]) [D 210804 11:01:09 _instruments:591] DTXMessage: expects_reply:0 flags:2 ('outputReceived:fromProcess:atTime:', ['2021-07-07 01:36:30.984414+0800 FastbotRunner-Runner[360:13910] By tapping FastbotRunner on the device, the screen of the device would go black for about one minute. During the black screen interval, users should press the home button on the device to go back to the main screen. Wait patiently until the network setting dialog window pops up. Users should allow the pop up request in order to continue.\n', 360, 50461417931]) [D 210804 11:01:09 _device:944] logProcess: 2021-07-07 01:36:30.984414+0800 FastbotRunner-Runner[360:13910] By tapping FastbotRunner on the device, the screen of the device would go black for about one minute. During the black screen interval, users should press the home button on the device to go back to the main screen. Wait patiently until the network setting dialog window pops up. Users should allow the pop up request in order to continue. [D 210804 11:01:09 _instruments:606] Ignore notification from server: 2191, 0x2, ('outputReceived:fromProcess:atTime:', ['2021-07-07 01:36:30.984414+0800 FastbotRunner-Runner[360:13910] By tapping FastbotRunner on the device, the screen of the device would go black for about one minute. During the black screen interval, users should press the home button on the device to go back to the main screen. Wait patiently until the network setting dialog window pops up. Users should allow the pop up request in order to continue.\n', 360, 50461417931]) [D 210804 11:01:10 _instruments:591] DTXMessage: expects_reply:0 flags:2 ('outputReceived:fromProcess:atTime:', ['2021-07-07 01:36:31.990096+0800 FastbotRunner-Runner[360:14491] TIC TCP Conn Failed [157:0x283f7f9c0]: 1:50 Err(50)\n', 360, 50485545444]) [D 210804 11:01:10 _device:944] logProcess: 2021-07-07 01:36:31.990096+0800 FastbotRunner-Runner[360:14491] TIC TCP Conn Failed [157:0x283f7f9c0]: 1:50 Err(50) [D 210804 11:01:10 _instruments:606] Ignore notification from server: 2192, 0x2, ('outputReceived:fromProcess:atTime:', ['2021-07-07 01:36:31.990096+0800 FastbotRunner-Runner[360:14491] TIC TCP Conn Failed [157:0x283f7f9c0]: 1:50 Err(50)\n', 360, 50485545444]) [D 210804 11:01:10 _instruments:591] DTXMessage: expects_reply:0 flags:2 ('outputReceived:fromProcess:atTime:', ['2021-07-07 01:36:31.995081+0800 FastbotRunner-Runner[360:14491] Task <30591829-C23E-450E-AC2E-B403C7F2F43B>.<157> HTTP load failed (error code: -1009 [1:50])\n', 360, 50485664947]) [D 210804 11:01:10 _device:944] logProcess: 2021-07-07 01:36:31.995081+0800 FastbotRunner-Runner[360:14491] Task <30591829-C23E-450E-AC2E-B403C7F2F43B>.<157> HTTP load failed (error code: -1009 [1:50]) [D 210804 11:01:10 _instruments:606] Ignore notification from server: 2193, 0x2, ('outputReceived:fromProcess:atTime:', ['2021-07-07 01:36:31.995081+0800 FastbotRunner-Runner[360:14491] Task <30591829-C23E-450E-AC2E-B403C7F2F43B>.<157> HTTP load failed (error code: -1009 [1:50])\n', 360, 50485664947]) [D 210804 11:01:10 _instruments:591] DTXMessage: expects_reply:0 flags:2 ('outputReceived:fromProcess:atTime:', ['2021-07-07 01:36:31.995464+0800 FastbotRunner-Runner[360:14491] Task <30591829-C23E-450E-AC2E-B403C7F2F43B>.<157> finished with error - code: -1009\n2021-07-07 01:36:31.996000+0800 FastbotRunner-Runner[360:14491] error Error Domain=NSURLErrorDomain Code=-1009 "似乎已断开与互联网的连接。" UserInfo={NSUnderlyingError=0x28055d860 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=http://www.bytedance.com/, NSErrorFailingURLKey=http://www.bytedance.com/, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=50, NSLocalizedDescription=似乎已断开与互联网的连接。}\n', 360, 50485678231]) [D 210804 11:01:10 _device:944] logProcess: 2021-07-07 01:36:31.995464+0800 FastbotRunner-Runner[360:14491] Task <30591829-C23E-450E-AC2E-B403C7F2F43B>.<157> finished with error - code: -1009 2021-07-07 01:36:31.996000+0800 FastbotRunner-Runner[360:14491] error Error Domain=NSURLErrorDomain Code=-1009 "似乎已断开与互联网的连接。" UserInfo={NSUnderlyingError=0x28055d860 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=http://www.bytedance.com/, NSErrorFailingURLKey=http://www.bytedance.com/, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=50, NSLocalizedDescription=似乎已断开与互联网的连接。} [D 210804 11:01:10 _instruments:606] Ignore notification from server: 2194, 0x2, ('outputReceived:fromProcess:atTime:', ['2021-07-07 01:36:31.995464+0800 FastbotRunner-Runner[360:14491] Task <30591829-C23E-450E-AC2E-B403C7F2F43B>.<157> finished with error - code: -1009\n2021-07-07 01:36:31.996000+0800 FastbotRunner-Runner[360:14491] error Error Domain=NSURLErrorDomain Code=-1009 "似乎已断开与互联网的连接。" UserInfo={NSUnderlyingError=0x28055d860 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=http://www.bytedance.com/, NSErrorFailingURLKey=http://www.bytedance.com/, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=50, NSLocalizedDescription=似乎已断开与互联网的连接。}\n', 360, 50485678231]) [D 210804 11:01:10 _instruments:591] DTXMessage: expects_reply:0 flags:2 ('outputReceived:fromProcess:atTime:', ['2021-07-07 01:36:31.996585+0800 FastbotRunner-Runner[360:13910] By tapping FastbotRunner on the device, the screen of the device would go black for about one minute. During the black screen interval, users should press the home button on the device to go back to the main screen. Wait patiently until the network setting dialog window pops up. Users should allow the pop up request in order to continue.\n', 360, 50485701026]) [D 210804 11:01:10 _device:944] logProcess: 2021-07-07 01:36:31.996585+0800 FastbotRunner-Runner[360:13910] By tapping FastbotRunner on the device, the screen of the device would go black for about one minute. During the black screen interval, users should press the home button on the device to go back to the main screen. Wait patiently until the network setting dialog window pops up. Users should allow the pop up request in order to continue.

    documentation 
    opened by sadmenmen 4
  • 使用crontab在mac上跑shell脚本,异常如下No signing certificate

    使用crontab在mac上跑shell脚本,异常如下No signing certificate "iOS Development" found: No "iOS Developm

    异常如下,但是我直接运行shell脚本是可以成功的。

    Create build description Build description signature: dbdcfc680e6eca3e7ec36608c066c529 Build description path: /var/root/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ehsnztwpxhszwfaqwjkgmqaqvtbw/Build/Intermediates.noindex/XCBuildData/dbdcfc680e6eca3e7ec36608c066c529-desc.xcbuild

    note: Build preparation complete note: Building targets in parallel error: No profiles for 'xx.xctrunner' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'xx.xctrunner'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild. (in target 'FastbotRunner' from project 'Fastbot-iOS')

    shell如下: #!/bin/bash

    cd /Users/xxx/git/Fastbot_iOS/Fastbot-iOS&& BUNDLEID=com.sohu.inhouse.iphonevideo duration=1 throttle=100 xcodebuild test -workspace Fastbot-iOS.xcworkspace -scheme FastbotRunner -configuration Release -destination 'platform=iOS,id=f634c33ea8bd0e5fdf89f3801f86579c68958fa9' -only-testing:FastbotRunner/FastbotRunner/testFastbot

    opened by superWenshuo 3
  • 无法安装(通过升级xocde以及重新拉取项目,可以正常使用了)

    无法安装(通过升级xocde以及重新拉取项目,可以正常使用了)

    Details

    Unable to install "FastbotRunner-Runner" Domain: com.apple.dtdevicekit Code: -402620415

    App installation failed Domain: com.apple.dtdevicekit Code: -402620415 Failure Reason: An unknown error has occurred. User Info: { DVTRadarComponentKey = 487927; "com.apple.dtdevicekit.stacktrace" = ( 0 DTDeviceKitBase 0x00000001250566e7 DTDKCreateNSError + 109 1 DTDeviceKitBase 0x0000000125056de9 DTDK_AMDErrorToNSError + 792 2 DTDeviceKitBase 0x000000012509656a __90-[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:]_block_invoke + 164 3 DVTFoundation 0x000000010b16b156 DVTInvokeWithStrongOwnership + 73 4 DTDeviceKitBase 0x0000000125096301 -[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:] + 1589 5 IDEiOSSupportCore 0x0000000124f2fa25 __118-[DVTiOSDevice(DVTiPhoneApplicationInstallation) processAppInstallSet:appUninstallSet:installOptions:completionBlock:]_block_invoke.352 + 4523 6 DVTFoundation 0x000000010b29c3ba DVT_CALLING_CLIENT_BLOCK + 7 7 DVTFoundation 0x000000010b29da92 __DVTDispatchAsync_block_invoke + 809 8 libdispatch.dylib 0x00007fff796a85f8 _dispatch_call_block_and_release + 12 9 libdispatch.dylib 0x00007fff796a963d _dispatch_client_callout + 8 10 libdispatch.dylib 0x00007fff796af8e0 _dispatch_lane_serial_drain + 602 11 libdispatch.dylib 0x00007fff796b0396 _dispatch_lane_invoke + 385 12 libdispatch.dylib 0x00007fff796b86ed _dispatch_workloop_worker_thread + 598 13 libsystem_pthread.dylib 0x00007fff798e3611 _pthread_wqthread + 421 14 libsystem_pthread.dylib 0x00007fff798e33fd start_wqthread + 13 ); }

    documentation 
    opened by ouhehuang 3
  • 运行几分钟后,app卡住

    运行几分钟后,app卡住

    2021-08-04 16:09:46.635034+0800 FastbotRunner-Runner[18686:948823] block in page, force back happend t = 484.95s Terminate com.XXXXX 18740 [fastbot] : select new action from unvisited Unsaturated

    控制台显示block in page, force back happend 然后app重启是什么问题?

    documentation question 
    opened by Maxxxx24 3
  • 放到Jenkins上执行报错

    放到Jenkins上执行报错

    image /usr/bin/codesign --force --sign 4D2F77F076A50438CE3E071A1042C5090B2540FB --deep --preserve-metadata=identifier,entitlements,flags --timestamp=none /Users/mobileqa/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ftlwwegzexsvdhdubsndhwljhbbo/Build/Products/Release-iphoneos/FastbotRunner-Runner.app/Frameworks/libXCTestSwiftSupport.dylib /Users/mobileqa/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ftlwwegzexsvdhdubsndhwljhbbo/Build/Products/Release-iphoneos/FastbotRunner-Runner.app/Frameworks/libXCTestSwiftSupport.dylib: replacing existing signature /Users/mobileqa/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ftlwwegzexsvdhdubsndhwljhbbo/Build/Products/Release-iphoneos/FastbotRunner-Runner.app/Frameworks/libXCTestSwiftSupport.dylib: errSecInternalComponent Command /usr/bin/codesign failed with exit code 1

    Test session results, code coverage, and logs: /Users/mobileqa/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ftlwwegzexsvdhdubsndhwljhbbo/Logs/Test/Test-FastbotRunner-2021.08.20_18-27-25-+0800.xcresult

    Testing failed: FastbotRunner: Command /usr/bin/codesign failed with exit code 1 Testing cancelled because the build failed.

    ** TEST FAILED **

    The following build commands failed: CodeSign /Users/mobileqa/Library/Developer/Xcode/DerivedData/Fastbot-iOS-ftlwwegzexsvdhdubsndhwljhbbo/Build/Products/Release-iphoneos/FastbotRunner-Runner.app/Frameworks/libXCTestSwiftSupport.dylib (1 failure) Build step 'Execute shell' marked build as failure Finished: FAILURE

    documentation 
    opened by wenyuanyuan 2
  • 使用命令行运行,duration等参数未生效

    使用命令行运行,duration等参数未生效

    命令:BUNDLEID=com.xxx duration=30 throttle=300 xcodebuild test -workspace Fastbot-iOS.xcworkspace -scheme FastbotRunner -configuration Release -destination 'platform=iOS,id=00008101-xx' -only-testing:FastbotRunner/FastbotRunner/testFastbot

    运行时,duration是30分钟,但是实际运行是5分钟,后来发现,我在xcode里面配置的scheme是5分钟,这个命令行参数未生效

    documentation 
    opened by CYsuncheng 2
  • 启动应用后就会停止不动

    启动应用后就会停止不动

    2022-11-21 22:32:57.562747+0800 FastbotRunner-Runner[26620:1929895] launch app successed 2022-11-21 14:32:57 +0000 , processs id : 26621 2022-11-21 22:32:57.562903+0800 FastbotRunner-Runner[26620:1929895] native version: 0.0.1 [fastbot] : exists models count 0 2022-11-21 22:33:02.925118+0800 FastbotRunner-Runner[26620:1930258] -[XCTScreenshotRequest initWithScreenID:rect:encoding:options:]: unrecognized selector sent to instance 0x282bc6d40 2022-11-21 22:33:02.926382+0800 FastbotRunner-Runner[26620:1930258] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[XCTScreenshotRequest initWithScreenID:rect:encoding:options:]: unrecognized selector sent to instance 0x282bc6d40' *** First throw call stack: (0x1ae3ed288 0x1c711c744 0x1ae4cafc0 0x1ae381e98 0x1ae380f70 0x102c8ef24 0x102ae59d0 0x102c8edc8 0x102c8eb34 0x102c8eac4 0x108e964fc 0x108e9428c 0x108e97b4c 0x1ae052e6c 0x1ae054a30 0x1ae05c124 0x1ae05cc80 0x1ae067500 0x21fd4d0bc 0x21fd4ce5c) libc++abi: terminating with uncaught exception of type NSException dyld4 config: DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libMainThreadChecker.dylib *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[XCTScreenshotRequest initWithScreenID:rect:encoding:options:]: unrecognized selector sent to instance 0x282bc6d40' terminating with uncaught exception of type NSException

    opened by zongshuren 3
  • unrecognized selector sent to instance 0x2828330c0

    unrecognized selector sent to instance 0x2828330c0

    2022-11-14 19:53:39.103278+0800 FastbotRunner-Runner[31900:2488183] Running tests... Test Suite 'Selected tests' started at 2022-11-14 19:53:40.146 Test Suite 'FastbotRunner.xctest' started at 2022-11-14 19:53:40.146 Test Suite 'FastbotRunner' started at 2022-11-14 19:53:40.146 Test Case '-[FastbotRunner testPingNetwork]' started. t = 0.00s Start Test at 2022-11-14 19:53:40.147 2022-11-14 19:53:40.148867+0800 FastbotRunner-Runner[31900:2488183] -[XCTScreenshotRequest initWithScreenID:rect:encoding:options:]: unrecognized selector sent to instance 0x2828330c0 t = 0.00s Tear Down 2022-11-14 19:53:40.169879+0800 FastbotRunner-Runner[31900:2488183] -[XCTScreenshotRequest initWithScreenID:rect:encoding:options:]: unrecognized selector sent to instance 0x282822a40 :0: error: FastbotRunner : -[XCTScreenshotRequest initWithScreenID:rect:encoding:options:]: unrecognized selector sent to instance 0x282822a40 (

    .... ....

    Test Suite 'FastbotRunner' failed at 2022-11-14 19:53:40.172. Executed 0 tests, with 1 failure (1 unexpected) in 0.000 (0.026) seconds WARNING: Test suite <XCTestCaseSuite:0x281e98140, 1, FastbotRunner> finished before its children finished Test Suite 'FastbotRunner.xctest' failed at 2022-11-14 19:53:40.172. Executed 0 tests, with 1 failure (1 unexpected) in 0.000 (0.026) seconds WARNING: Test suite <XCTestSuite:0x281e98050, 1, FastbotRunner.xctest> finished before its children finished Test Suite 'Selected tests' failed at 2022-11-14 19:53:40.172. Executed 0 tests, with 1 failure (1 unexpected) in 0.000 (0.027) seconds WARNING: Test suite <XCTestSuite:0x281e98000, 1, Selected tests> finished before its children finished

    opened by qingtianwaa 22
  • [Crash]Xiaomi POCO X3 device have a crash, block run

    [Crash]Xiaomi POCO X3 device have a crash, block run

    [Fastbot][2022-10-21 17:38:09.856] // crash processName: com.android.se, is not testing app [Fastbot][2022-10-21 17:38:10.653] // phone info: Xiaomi_M2007J20CG_10 [Fastbot][2022-10-21 17:38:10.653] // runing fastbot java.io.FileNotFoundException: /data/system/theme_config/theme_compatibility.xml: open failed: ENOENT (No such file or directory) at libcore.io.IoBridge.open(IoBridge.java:496) at java.io.FileInputStream.(FileInputStream.java:159) at java.io.FileInputStream.(FileInputStream.java:115) at java.io.FileReader.(FileReader.java:58) at miui.content.res.ThemeCompatibilityLoader.getVersion(ThemeCompatibilityLoader.java:108) at miui.content.res.ThemeCompatibilityLoader.getConfigDocumentTree(ThemeCompatibilityLoader.java:126) at miui.content.res.ThemeCompatibilityLoader.loadConfig(ThemeCompatibilityLoader.java:59) at miui.content.res.ThemeCompatibility.(ThemeCompatibility.java:31) at miui.content.res.ThemeCompatibility.isThemeEnabled(ThemeCompatibility.java:111) at android.content.res.MiuiResourcesImpl.(MiuiResourcesImpl.java:41) at android.content.res.Resources.(Resources.java:285) at android.content.res.MiuiResources.(MiuiResources.java:49) at android.content.res.Resources.getSystem(Resources.java:206) at android.app.ActivityManager.isHighEndGfx(ActivityManager.java:936) at android.app.ActivityThread.systemMain(ActivityThread.java:7360) at java.lang.reflect.Method.invoke(Native Method) at com.android.commands.monkey.g.b.aC(SourceFile:46) at com.android.commands.monkey.framework.AndroidDevice.a(SourceFile:114) at com.android.commands.monkey.Monkey.a(SourceFile:794) at com.android.commands.monkey.Monkey.main(SourceFile:458) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:380) Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory) at libcore.io.Linux.open(Native Method) at libcore.io.ForwardingOs.open(ForwardingOs.java:167) at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252) at libcore.io.IoBridge.open(IoBridge.java:482) ... 21 more

    opened by chaoyuebaihu 0
  • 没人修一下吗???

    没人修一下吗???

    error build: Cannot link directly with dylib/framework, your binary is not an allowed client of /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/XCTAutomationSupport.framework/XCTAutomationSupport for architecture arm64

    opened by Pycoder0901 0
Owner
Bytedance Inc.
Bytedance Inc.
SwiftCheck is a testing library that automatically generates random data for testing of program properties

SwiftCheck QuickCheck for Swift. For those already familiar with the Haskell library, check out the source. For everybody else, see the Tutorial Playg

TypeLift 1.4k Dec 21, 2022
Testing the UI without UI Testing, a Swift experiment.

UI tests without UI Testing experiment This repo is a small experiment to see if there's an "in-between" for testing iOS applications. More feature-le

Joe Masilotti 20 Sep 26, 2022
Snapshot testing tool for iOS and tvOS

SnapshotTest is a simple view testing tool written completely in Swift to aid with development for Apple platforms. It's like unit testing for views.

Pär Strindevall 44 Sep 29, 2022
Bluepill is a reliable iOS testing tool that runs UI tests using multiple simulators on a single machine

Bluepill is a tool to run iOS tests in parallel using multiple simulators. Motivation LinkedIn created Bluepill to run its large iOS test suite in a r

Mobile Native Foundation 3.1k Jan 3, 2023
Swifty tool for visual testing iPhone and iPad apps. Every pixel counts.

Cribble Cribble - a tool for visual testing iPhone and iPad apps. Every pixel counts. Getting Started An example app is included demonstrating Cribble

Max Sokolov 273 Nov 4, 2022
A Mac and iOS Playgrounds Unit Testing library based on Nimble.

Spry Spry is a Swift Playgrounds Unit Testing library based on Nimble. The best thing about Spry is that the API matches Nimble perfectly. Which means

Quick 327 Jul 24, 2022
Implementing and testing In-App Purchases with StoreKit2 in Xcode 13, Swift 5.5 and iOS 15.

StoreHelper Demo Implementing and testing In-App Purchases with StoreKit2 in Xcode 13, Swift 5.5, iOS 15. See also In-App Purchases with Xcode 12 and

Russell Archer 192 Dec 17, 2022
Network testing for Swift

DVR DVR is a simple Swift framework for making fake NSURLSession requests for iOS, watchOS, and OS X based on VCR. Easy dependency injection is the ma

Venmo 650 Nov 3, 2022
The Swift (and Objective-C) testing framework.

Quick is a behavior-driven development framework for Swift and Objective-C. Inspired by RSpec, Specta, and Ginkgo. // Swift import Quick import Nimbl

Quick 9.6k Dec 31, 2022
UI Testing Cheat Sheet and Examples.

UI Testing Cheat Sheet This repository is complementary code for my post, UI Testing Cheat Sheet and Examples. The post goes into more detail with exa

Joe Masilotti 2.1k Dec 25, 2022
Mockingbird was designed to simplify software testing, by easily mocking any system using HTTP/HTTPS

Mockingbird Mockingbird was designed to simplify software testing, by easily mocking any system using HTTP/HTTPS, allowing a team to test and develop

FARFETCH 183 Dec 24, 2022
Automatic testing of your Pull Requests on GitHub and BitBucket using Xcode Server. Keep your team productive and safe. Get up and running in minutes. @buildasaur

Buildasaur Automatic testing of your Pull Requests on GitHub and BitBucket using Xcode Server. Keep your team productive and safe. Get up and running

Buildasaurs 774 Dec 11, 2022
Genything is a framework for random testing of a program properties.

Genything is a framework for random testing of a program properties. It provides way to random data based on simple and complex types.

Just Eat Takeaway.com 25 Jun 13, 2022
For Testing APIs of NYTimes

NYTimes-APIs For Testing APIs of NYTimes Mark Dennis Diwa ?? To run the app: Open terminal first then run pod install. Open workspace. Run the app on

Mark Dennis Diwa 0 Nov 23, 2021
Multivariate & A/B Testing for iOS and Mac

This library is no longer being maintained. You can continue to use SkyLab in your projects, but we recommend switching another solution whenever you

Mattt 792 Dec 15, 2022
Remote configuration and A/B Testing framework for iOS

MSActiveConfig v1.0.1 Remote configuration and A/B Testing framework for iOS. Documentation available online. MSActiveConfig at a glance One of the bi

Elevate 78 Jan 13, 2021
AB testing framework for iOS

ABKit Split Testing for Swift. ABKit is a library for implementing a simple Split Test that: Doesn't require an HTTP client written in Pure Swift Inst

Recruit Marketing Partners Co.,Ltd 113 Nov 11, 2022
AppiumLibrary is an appium testing library for RobotFramework

Appium library for RobotFramework Introduction AppiumLibrary is an appium testing library for Robot Framework. Library can be downloaded from PyPI. It

Serhat Bolsu 327 Dec 25, 2022
Keep It Functional - An iOS Functional Testing Framework

IMPORTANT! Even though KIF is used to test your UI, you need to add it to your Unit Test target, not your UI Test target. The magic of KIF is that it

KIF Framework 6.2k Dec 29, 2022