bytedance / Fastbot_iOS
- пятница, 6 августа 2021 г. в 00:27:57
About Fastbot(2.0) is a model-based testing tool for modeling GUI transitions to discover app stability problems
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
cd Fastbot-iOS && pod install --repo-update
Fastbot-iOS.xcworkspace
, Set FastbotRunner
Signing & Capabilities and Bundle IDtestPingNetwork
in Tests or Run command: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
ping network success
" appears in the console log, that means get network permission successfulkey | 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 |
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 中文手册
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:
[fastbot_native addUIInterruptionMonitor: ...];
in FastbotRunner.mkey | sample |
---|---|
launchenv | stubPort=9797 |
dataport | 9797 |
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.
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
Copyright©2021 Bytedance
Licensed under MIT
Fastbot-iOS required some features are based on or derives from projects below: