s
WEB 端批量移动设备管理控制工具 STF 的环境搭建和运行 / CentOS 6
http://blog.csdn.net/hqzxsc2006/article/details/48652153
安装GCC-4.6.1详细教程
http://blog.163.com/phys_atom/blog/static/1676445532012229814992/
https://miteshshah.github.io/sysadmin/how-to-setup-smartphone-test-farm-stf/
ANDROID SDK R24.4.1-里程碑版本
http://sdk.android-studio.org/
http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
http://www.androiddevtools.cn/
https://testerhome.com/topics/2988
最近项目涉及到较多设备批量管理的需求,发现一工具,可以批量对大量设备进行WEB端管理,工具主页:https://openstf.github.io/
工具名STF(Smartphone Test Farm)
https://github.com/openstf/stf
STF (or Smartphone Test Farm) is a web application for debugging smartphones, smartwatches and other gadgets remotely, from the comfort of your browser.
It is currently being used at CyberAgent to control a growing collection of more than 160 devices.
Announcements
最近项目涉及到较多设备批量管理的需求,发现一工具,可以批量对大量设备进行WEB端管理,工具主页:https://openstf.github.io/
工具名STF(Smartphone Test Farm)
STF (or Smartphone Test Farm) is a web application for debugging smartphones, smartwatches and other gadgets remotely, from the comfort of your browser.
上个主页上的效果图吧:
它的github页面为: https://github.com/openstf/stf
下面简单记录下在Ubuntu上搭建它的步骤(windows暂时没尝试过,应该类似)
环境:Ubuntu15.04(desktop-64bit)
浏览器:firefox
1、Linux一些基本包的安装:
在控制台分别运行
sudo apt-get update sudo apt-get install git sudo apt-get install lib32stdc++6 sudo apt-get install yum
2、SDK环境安装
这里我偷了个懒直接拷贝已经下载好的JDK和Android SDK环境过来,当然如果没有的同学估计要重新慢慢下载和安装了。
拷贝SDK目录到HOME目录中,打开控制台命令运行:
sudo gedit ~/.bashrc
配置环境变量并保存退出(wang为用户名,需要根据实际路径来填写)
export JAVA_HOME=/home/wang/SDK/jdk1.8.0_45 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export ANDROID_HOME=/home/wang/SDK/android-sdk-linux export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
在控制台执行命令使之生效:
source ~/.bashrc
验证:控制台分别输入adb和java -version来验证SDK是否配置生效
3、nodejs安装
在https://nodejs.org/download/
下载nodejs安装包,解压并控制台进入目录
运行如下命令
./configure make sudo make install sudo ln -s /usr/local/bin/node /usr/bin/node sudo ln -s /usr/local/bin/npm /usr/bin/npm
验证:控制台分别输入node -v和npm -v验证是否配置完成
4、安装Bower
控制台执行npm命令进行Bower安装并等待完成
sudo npm install bower -g
验证:
5、安装RethinkBD
控制台执行
source /etc/lsb-release && echo "deb http://download.rethinkdb.com/apt $DISTRIB_CODENAME main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list wget -qO- http://download.rethinkdb.com/apt/pubkey.gpg | sudo apt-key add - //注意:以上为一条命令,需一起执行 sudo apt-get update sudo apt-get install rethinkdb
验证:
6、安装GraphicsMagick
最新版本包地址:http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/
解压GraphicsMagick-1.3.21.tar.gz并控制台进入目录
执行
./configure make sudo make install
验证:
7、安装libsodium(zeromq的依赖)
github下载最新包:https://github.com/jedisct1/libsodium/releases
解压libsodium-1.0.3.tar.gz并控制台进入目录
执行
./configure make sudo make install
验证:
8、安装zeromq
最新版本包地址:http://download.zeromq.org/
解压zeromq-4.1.2.tar.gz并控制台进入目录
执行
./configure make sudo make install sudo ldconfig
9、安装protobuf
github下载最新包:https://github.com/google/protobuf/releases
解压protobuf-cpp-3.0.0-alpha-3.tar.gz并控制台进入目录
执行
//因为需要配置环境变量,所以用参数指定到了local下的指定目录中 ./configure --prefix=/usr/local/protobuf make sudo make install
修改环境变量配置文件:
sudo gedit ~/.bashrc
配置环境变量并保存退出:
export PATH=$PATH:/usr/local/protobuf/bin/ export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
在控制台执行命令使之生效:
source ~/.bashrc
验证:
10、安装pkg-config
sudo apt-get install pkg-config
验证:
11、安装stf (可能需要翻*墙或者VPN)
控制台执行命令:
sudo npm install -g stf
安装过程:
STF运行
一、启动rethinkDB
安装完成后,打开单独的控制台,运行命令等待服务启动完成:
rethinkdb
二、启动stf服务端
打开一个单独的控制台,运行命令等待服务启动完成:
stf local
注:这里我多加了个参数 --allow-remote用于允许远程调试设备连接
三、运行客户端
在浏览器中输入地址:http://localhost:7100/ 访问客户端。
输入用户名和邮箱登录即可开始使用。
然后就可以在页面上直接控制连接的设备了,按照官方的说法,可以控制more than 160 devices. 当然 要有好的hub或者无线环境。
其他的以后进一步发掘吧。
==================================================================================================
Help keep OpenSTF up to date and in active development!
STF (or Smartphone Test Farm) is a web application for debugging smartphones, smartwatches and other gadgets remotely, from the comfort of your browser.
It is currently being used at CyberAgent to control a growing collection of more than 160 devices.
Announcements
- Thanks to @qband, @juliusspencer and Anonymous donors, we've been able to confirm Android N Preview 2 support!
- We've added a donation transparency report for all to see.
Features
- OS support
- Android
- Supports versions 2.3.3 (SDK level 10) to Android N Preview 2 (which still shows up as SDK level 23)
- Supports Wear 5.1 (but not 5.0 due to missing permissions)
- Supports Fire OS, CyanogenMod, and other heavily Android based distributions
-
root
is not required for any current functionality
- Android
- Remote control any device from your browser
- Real-time screen view
- Refresh speed can reach 30-40 FPS depending on specs and Android version. See minicap for more information.
- Rotation support
- Supports typing text from your own keyboard
- Supports meta keys
- Copy and paste support (although it can be a bit finicky on older devices, you may need to long-press and select paste manually)
- May sometimes not work well with non-Latin languages unfortunately.
- Multitouch support on touch screens via minitouch, two finger pinch/rotate/zoom gesture support on regular screens by pressing
Alt
while dragging - Drag & drop installation and launching of
.apk
files- Launches main launcher activity if specified in the manifest
- Reverse port forwarding via minirev
- Access your local server directly from the device, even if it's not on the same network
- Open websites easily in any browser
- Installed browsers are detected in real time and shown as selectable options
- Default browser is detected automatically if selected by the user
- Execute shell commands and see real-time output
- Display and filter device logs
- Use
adb connect
to connect to a remote device as if it was plugged in to your computer, regardless of ADB mode and whether you're connected to the same network- Run any
adb
command locally, including shell access - Android Studio and other IDE support, debug your app while watching the device screen on your browser
- Supports Chrome remote debug tools
- Run any
- File Explorer to access device file system
- Experimental VNC support (work in progress)
- Real-time screen view
- Manage your device inventory
- See which devices are connected, offline/unavailable (indicating a weak USB connection), unauthorized or unplugged
- See who's using a device
- Search devices by phone number, IMEI, ICCID, Android version, operator, product name and/or many other attributes with easy but powerful queries
- Show a bright red screen with identifying information on a device you need to locate physically
- Track battery level and health
- Rudimentary Play Store account management
- List, remove and add new accounts (adding may not work on all devices)
- Display hardware specs
Status
STF is in continued, active development, but as of late 2015 the team is operating mostly on their private time and funds. While normal for many open source projects, STF is quite heavy on the hardware side, and is therefore somewhat of a money sink. Contact us if you'd like to support future development or even become our next sponsor.
We're also actively working to expand the team. Welcome @vbanthia as our newest full contributor!
Short term goals
Here are some things we are planning to address ASAP.
- Properly expose the new VNC functionality in the UI
- Implement a basic REST API for programmatically using devices
- Properly reset user data between uses (Android 4.0+)
- Automated scheduled restarts for devices
Sponsors wanted
Is your company (or you!) a heavy user of STF? Consider becoming a hardware sponsor. If you find a device that doesn't work, or would simply like to ensure support for a new model, send it to us! While we can't guarantee a fix, we can promise that someone will take a detailed look into what's going on with your device, and fix it when possible. For difficult cases you may need to use our consulting services instead.
You can also sponsor a feature or bug fix and get it attributed to you or your company in the release notes.
Consulting services
We highly encourage open participation in the community. However, if you're running a business that uses STF or would like to use STF, you may sometimes want to have an expert, i.e. one of the original developers or a skilled contributor, work with you to set up a prototype for evaluation purposes, add support for new or old hardware, figure out an issue, fix a bug or add some new feature. Our services are similar to FFmpeg's. Contact us with details and we'll see what we can do.
Availability is limited and tied to individual developer's schedules.
A quick note about security
As the product has evolved from an internal tool running in our internal network, we have made certain assumptions about the trustworthiness of our users. As such, there is little to no security or encryption between the different processes. Furthermore, devices do not get completely reset between uses, potentially leaving accounts logged in or exposing other sensitive data. This is not an issue for us, as all of our devices are test devices and are only used with test accounts, but it may be an issue for you if you plan on deploying STF to a multiuser environment. We welcome contributions in this area.
Requirements
- Node.js >= 0.12
- ADB properly set up
- RethinkDB >= 2.2
- GraphicsMagick (for resizing screenshots)
- ZeroMQ libraries installed
- Protocol Buffers libraries installed
- yasm installed (for compiling embedded libjpeg-turbo)
- pkg-config so that Node.js can find the libraries
Note that you need these dependencies even if you've installed STF directly from NPM, because they can't be included in the package.
On OS X, you can use homebrew to install most of the dependencies:
brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config
On Windows you're on your own. In theory you might be able to get STF installed via Cygwin or similar, but we've never tried. In principle we will not provide any Windows installation support, but please do send a documentation pull request if you figure out what to do.
We also provide a Docker container in the Docker Hub as openstf/stf. You can use our Dockerfile as guidance if you'd prefer to do the installation yourself.
You should now be ready to build or run STF.
Note that while OS X can be used for development, it doesn't provide a very reliable experience in production due to (presumed) bugs in ADB's OS X implementation. We use CoreOS but any Linux or BSD distribution should do fine.
Installation
As mentioned earlier, you must have all of the requirements installed first. Then you can simply install via NPM:
npm install -g stf
Now you're ready to run. For development, though, you should build instead.
Building
After you've got all the requirements installed, it's time to fetch the rest of the dependencies.
First, fetch all NPM and Bower modules:
npm install
You may also wish to link the module so that you'll be able to access the stf
command directly from the command line:
npm link
You should now have a working installation for local development.
Running
STF comprises of several independent processes that must normally be launched separately. In our own setup each one these processes is its own systemd unit. See DEPLOYMENT.md and Setup Examples if you're interested.
For development purposes, however, there's a helper command to quickly launch all required processes along with a mock login implementation. Note that you must have RethinkDB running first.
If you don't have RethinkDB set up yet, to start it up, go to the folder where you'd like RethinkDB to create a rethinkdb_data
folder in (perhaps the folder where this repo is) and run the following command:
rethinkdb
You should now have RethinkDB running locally. Running the command again in the same folder will reuse the data from the previous session.
You're now ready to start up STF itself:
stf local
After the webpack build process has finished (which can take a small while) you should have your private STF running onhttp://localhost:7100. If you had devices connected before running the command, those devices should now be available for use. If not, you should see what went wrong from your console. Feel free to plug in or unplug any devices at any time.
Note that if you see your device ready to use but without a name or a proper image, we're probably missing the data for that model in our device database. Everything should work fine either way.
If you want to access STF from other machines, you can add the --public-ip
option for quick testing.
stf local --public-ip <your_internal_network_ip_here>
Updating
To update your development version, simply pull the repo and run npm install
again. You may occasionally have to remove the whole node_modules
and res/bower_components
folder to prevent NPM or Bower from complaining about version mismatches.
FAQ
Can I deploy STF to actual servers?
Yes, see DEPLOYMENT.md and Setup Examples.
Will I have to change battery packs all the time?
Nope, we've had many devices running since the initial prototype phase about two years ago, and we've only had a single incident so far. The battery expanded causing the casing to split from the seams. The device itself was working fine and reporting full battery health, but it was discarded due to safety reasons.
Devices should be allowed to turn their screens off when idle, which is what we are doing. All of our devices report perfect battery health so far.
Note that you may have a problem if your USB hubs are unable to both provide enough power and support the data connection at the same time. This can cause a device to stop charging when being used, resulting in many charging cycles. If this happens you will just need to get a better USB hub.
Is the system secure?
It's possible to run the whole user-facing side behind HTTPS, but that's pretty much it. All internal communication between processes is insecure and unencrypted, which is a problem if you can eavesdrop on the network. See our quick note about security.
Can I just put the system online, put a few devices there and start selling it?
Yes and no. See "Is the system secure?". The system has been built in an environment where we are able to trust our users and be confident that they're not going to want to mess with others. In the current incarnation of the system a malicious user with knowledge of the inner workings will, for instance, be able to control any device at any time, whether it is being used by someone or not. Pull requests are welcome.
Once I've got the system running, can I pretty much leave it like that or is manual intervention required?
In our experience the system runs just fine most of the time, and any issues are mostly USB-related. You'll usually have to do something about once a week.
The most common issue is that a device will lose all of its active USB connections momentarily. You'll get errors in the logs but the worker process will either recover or get respawned, requiring no action on your side.
Below are the most common errors that do require manual intervention.
- One device worker keeps getting respawned all the time
- Rebooting the device usually helps. If the device stays online for long enough you might be able to do it from the UI. Otherwise you'll have to SSH into the server and run
adb reboot
manually. - This could be a sign that you're having USB problems, and the device wishes to be moved elsewhere. The less complex your setup is the fewer problems you're going to experience. See troubleshooting.
- We're working on adding periodic automatic restarts and better graceful recovery to alleviate the issue.
- Rebooting the device usually helps. If the device stays online for long enough you might be able to do it from the UI. Otherwise you'll have to SSH into the server and run
- A whole group of devices keeps dying at once
- They're most likely connected to the same USB hub. Either the hub is bad or you have other compatibility issues. In our experience this usually happens with USB 3.0 hubs, or you may have a problem with your USB extension card. See recommended hardware.
- A device that should be online is not showing up in the list or is showing up as disconnected
- See troubleshooting.
How do I uninstall STF from my device?
When you unplug your device, all STF utilities except STFService stop running automatically. It doesn't do any harm to force stop or uninstall it.
To uninstall the STFService, run the following command:
adb uninstall jp.co.cyberagent.stf
You may also wish to remove our support binaries, although as mentioned before they won't run unless the device is actually connected to STF. You can do this as follows:
adb shell rm /data/local/tmp/minicap \
/data/local/tmp/minicap.so \
/data/local/tmp/minitouch \
/data/local/tmp/minirev
Your device is now clean.
Troubleshooting
I plugged in a new device but it's not showing up in the list.
There can be various reasons for this behavior. Some especially common reasons are:
- USB debugging is not enabled
- Enable it.
- USB debugging is enabled but the USB connection mode is wrong
- Try switching between MTP and PTP modes and see if the device appears. This happens fairly often on OS X but almost never on Linux.
- You don't have the ADB daemon running
- Make sure ADB is running with
adb start-server
.
- Make sure ADB is running with
- You haven't authorized the ADB key yet
- Check your device for an authentication dialog. You may need to unplug and then plug the device back in to see the dialog.
- ADB hasn't whitelisted the manufacturer's vendor ID
- Add it yourself or wait for the new version that removes the stupid whitelisting feature to be deployed.
- Insufficient power supply
- If you're using a USB hub, try a powered hub instead (one that comes with a separate AC adapter).
- Even if you're using a powered hub, there might not actually be enough power for all ports simultaneously. Get a better hub or use fewer ports.
- Your device is too power hungry, can happen with tablets. Get a better hub.
- Insufficient USB host controller resources
- On Linux, use
dmesg
to check for this error - If you've only got 9-12 devices connected and an Intel (Haswell) processor, it's most likely an issue with the processor. If your BIOS has an option to disable USB 3.0, that might help. If not, you're screwed and must get a PCIE extension card with onboard controllers.
- On Linux, use
- Your powered USB hub does not support the device
- Can happen with older devices and newer Battery Charging spec compatible hubs. Get a more compatible hub.
- The USB cable is bad
- It happens. Try another one.
- The USB hub is broken
- This, too, happens. Just try a new one.
- The device might not have a unique USB serial number, causing STF to overwrite the other device instead
- This has never happened to us so far, but we do have one dirt-cheap Android 4.4 device whose serial number is the wonderfully unique "0123456789ABCDEF". Presumably if we had more than one unit we would have a problem.
A device that was previously connected no longer shows up in the list.
Again, there can be various reasons for this behavior as well. Some common reasons are:
- The device ran out of power
- You can see the last reported power level in the device list, unless there was a lengthy power outage preventing the battery level from being reported.
- Someone accidentally disabled USB debugging remotely
- Yes, it happens.
- An OS update disabled USB debugging
- Yes, it happens. Especially on Fire OS.
- Someone touched the USB cable just the wrong way causing a disconnection
- Happens easily.
- Your PCIE USB extension card died
- Yes, it happens.
- Temporary network issues
- Can't help with that.
- Someone removed the device physically.
- Or that.
- You're on OS X
- There's a bug in ADB's OS X implementation that causes devices to be lost on error conditions. The problem is more pronounced when using USB hubs. You have to unplug and then plug it back in again.
- The USB hub broke
- Happens. Just try a new one.
Remote debugging (i.e. adb connect
) disconnects while I'm working.
If you're using STF locally, the most common cause is that you're not filtering the devices STF is allowed to connect to. The problem is that once you do adb connect
, STF sees a new device and tries to set it up. Unfortunately since it's already connected via USB, setting up the new device causes the worker process handling the original USB device to fail. This is not a problem in production, since the devices should be connected to an entirely different machine anyway. For development it's a bit inconvenient. What you can do is give stf local
a list of serials you wish to use. For example, if your device's serial is0123456789ABCDEF
, use stf local 0123456789ABCDEF
. Now you can use adb connect
and STF will ignore the new device.
There's another likely cause if you're running STF locally. Even if you whitelist devices by serial in STF, your IDE (e.g. Android Studio) doesn't know anything about that. From the IDE's point of view, you have two devices connected. When you try to run or debug your application, Android Studio suddenly notices that two devices are now providing JDWP connections and tries to connect to them both. This doesn't really work since the debugger will only allow one simultaneous connection, which causes problems with ADB. It then decides to disconnect the device (or sometimes itself) entirely.
One more sad possibility is that your Android Studio likes to restart ADB behind the scenes. Even if you restart ADB, USB devices will soon reappear as they're still connected. The same is not true for remote devices, as ADB never stores the list anywhere. This can sometimes also happen with the Android Device Monitor (monitor
).
Recommended hardware
This is a list of components we are currently using and are proven to work.
PC components
These components are for the PC where the USB devices are connected. Our operating system of choice is CoreOS, but any other Linux or BSD distribution should do fine. Be sure to use reasonably recent kernels, though, as they often include improvements for the USB subsystem.
Our currently favorite build is as follows. It will be able to provide 28 devices using powered USB hubs, and about 10 more if you're willing to use the motherboard's USB ports, which is usually not recommended for stability reasons. Note that our component selection is somewhat limited by their availability in Japan.
PC case | XIGMATEK Nebula | x1 |
Motherboard | ASUS H97I-PLUS | x1 |
Processor | Intel® Core™ i5-4460 | x1 |
PSU | Corsair CX Series™ Modular CX430M ATX Power Supply | x1 |
Memory | Your favorite DDR3 1600 MHz 8GB stick | x1 |
SSD | A-DATA Premier Pro SP900 64GB SSD | x1 |
USB extension card | StarTech.com 4 Port PCI Express (PCIe) SuperSpeed USB 3.0 Card Adapter w/ 4 Dedicated 5Gbps Channels - UASP - SATA / LP4 Power | x1 |
USB hub | Plugable USB 2.0 7 Port Hub with 60W Power Adapter | x4 |
MicroUSB cable | Monoprice.com 1.5ft USB 2.0 A Male to Micro 5pin Male 28/24AWG Cable w/ Ferrite Core (Gold Plated) | x28 |
You may also need extension cords for power.
Alternatively, if you find that some of your older devices do not support the recommended hub, you may wish to mix the hub selection as follows:
USB hub | Plugable USB 2.0 7 Port Hub with 60W Power Adapter | x2 |
USB hub for older devices | System TALKS USB2-HUB4XA-BK | x2-4 |
You can connect up to two of the older hubs (providing up to 8 devices total) directly to the motherboard without exhausting USB host controller resources.
We also have several "budget builds" with an MSI AM1I motherboard and an AMD Athlon 5350 4-core processor. These builds, while significantly cheaper, sometimes completely lose the USB PCIE extension cards, and even a reboot will not always fix it. This may normally be fixable via BIOS USB settings, but unfortunately the budget motherboard has a complete lack of any useful options. Fortunately the AMD processor does not share Intel's Haswell USB host control resource problem, so you can also just connect your hubs to the motherboard directly if you don't mind sharing the root bus.
Below is an incomplete list of some of the components we have tried so far, including unsuitable ones.
Tested equipment
Note that our hardware score ratings only reflect their use for the purposes of this project, and are not an overall statement about the quality of the product.
USB extension cards
StarTech.com 4 Port PCI Express (PCIe) SuperSpeed USB 3.0 Card Adapter w/ 4 Dedicated 5Gbps Channels - UASP - SATA / LP4 Power | 9/10 | Reliable, well supported chipset and good power connections |
StarTech.com 4 Independent Port PCI Express USB 2.0 Adapter Card | 8/10 | Reliable |
玄人志向 USB3.0RX4-P4-PCIE | 4/10 | Well supported chipset but breaks VERY easily |
Our current recommendation is StarTech.com's PEXUSB3S44V. It provides an independent Renesas (allegedly Linux-friendliest) µPD720202 host controller for each port. Another option from the same maker is PEXUSB400, which also works great but may offer slightly less future proofing.
Our 玄人志向 USB3.0RX4-P4-PCIE cards have been nothing but trouble and we've mostly phased them out by now. Chipset-wise it's pretty much the same thing as StarTech's offering, but the SATA power connector is awfully flimsy and can actually physically break off. The card is also incredibly sensitive to static electricity and will permanently brick itself, which happened on numerous occasions.
USB hubs
Plugable USB 2.0 7 Port Hub with 60W Power Adapter | 8/10 | High power output, high reliability |
Plugable USB 3.0 7-port Charging Hub with 60W Power Adapter | 5/10 | High power output, low reliability |
System TALKS USB2-HUB4XA-BK USB 2.0 hub with power adapter | 7/10 | High power output on two ports which complicates device positioning, low port count |
Anker USB 3.0 9-Port Hub + 5V 2.1A Charging Port | 2/10 | High port count, insufficient power |
ORICO P10-U2 External ABS 10 Port 2.0 USB HUB for Laptop/Desktop-BLACK | 3/10 | High port count, insufficient power |
ORICO BH4-U3-BK ABS 4 Port USB3.0 BC1.2 Charging HUB with 12V3A Power Adapter-BLACK | 5/10 | High power output, low reliability |
The best hub we've found so far is Plugable's USB 2.0 7 Port Hub with 60W Power Adapter. It's able to provide 1.5A per port for Battery Charging spec compliant devices, which is enough to both charge and sync even tablets (although charging will not occur at maximum speed, but that's irrelevant to us). Note that even devices that are not compliant will usually charge and sync just fine, albeit slower. The more recent USB 3.0 version has proven unreliable with the rest of our components, causing the whole hub to disconnect at times. Annoyingly the ports face the opposite direction, too. Note that ORICO also provides hubs that are identical to Plugable's offerings, the latter of which seem to be rebrands.
Unfortunately Plugable's USB 2.0 hub is not perfect either, at least for our purposes. It includes a physical on/off switch which can be especially annoying if your devices are in a regular office with occasional scheduled power outages. This will shut down the PC too, of course, but the problem is that once power comes back online, the hubs will be unable to switch themselves on and the devices won't charge, leading you to find a bunch of dead devices the next Monday.
The System TALKS USB 2.0 hub is very reliable, but has a few annoying drawbacks. First, the power adapter only provides power to two of its four ports, while the other two are powered by the host PC. The problem with this approach is that you must figure out which devices are power hungry yourself and put them on the ports with higher current. This can complicate device setup/positioning quite a bit. Another drawback is that if the host PC is turned off, only the powered ports will keep charging the connected devices. However, the hub is amazingly compatible with pretty much anything, making it the top choice for older devices that do not support the Battery Charging hubs.
Most powered USB 3.0 hubs we've tested have had a serious problem: the whole hub occasionally disconnected. This may have been caused by the specific combination of our components and/or OS, but as of yet we don't really know. Disabling USB 3.0 may help if you run into the same problem.
Translating
Currently STF UI is available in English and Japanese.
If you would like translate to any other language, please contribute in the STF Transifex project.
For updating the source and all the translation files first you have to install the Transifex client.
Then just run:
gulp translate
It will do the following:
- Convert all the
jade
files tohtml
. - Extract with gettext all translatable strings to
stf.pot
. - Push
stf.pot
to Transifex. - Pull from Transifex all
po
translations. - Compile all
po
files tojson
.
Then in order to add it officially (only needs to be done once):
- Add the language to
res/common/lang/langs.json
. - Pull the specific language
tx pull -l <lang>
. - Run
gulp translate
.
Testing
See TESTING.md.
Contributing
See CONTRIBUTING.md.
License
See LICENSE.
Copyright © CyberAgent, Inc. All Rights Reserved.
end
相关推荐
**OpenSTF(Smartphone Test Farm)学习指南** OpenSTF 是一个开源项目,全称为“Smartphone Test Farm”,意为智能手机测试农场。它提供了一个远程控制和管理多台 Android 设备的平台,广泛用于自动化测试、设备...
`openstf-java-client` 是一个专为 `openstf/stf`(Smartphone Test Farm)API 设计的Java客户端,它允许用户通过浏览器对设备场中的设备进行远程控制和管理。这个开源项目为开发者提供了一种灵活、强大的工具,使得...
NULL 博文链接:https://lindows.iteye.com/blog/2304833
This text teaches you how to build a fully automated testing tool that you can immediately use for your software development projects, and provides expert guidance on deploying it in ways that let you...
常见的自动化测试工具有Selenium用于Web应用测试,Appium针对移动应用,JUnit和TestNG是Java环境下的单元测试框架,还有JMeter用于性能测试。选择合适的工具能有效提升测试效率,同时降低学习和维护的成本。 实施...
NULL 博文链接:https://lindows.iteye.com/blog/1266180
"openstf-1.5.8-py3-none-any.whl"是一个Python库的压缩包,它为开发者提供了与OpenSTF(Smartphone Test Farm)交互的能力。本文将深入探讨这个库的功能、用途及其安装和使用方法。 OpenSTF,全称为“Smartphone ...
《.Net Test Automation.Recipes》是一本专注于.NET测试自动化领域的技术手册,旨在为开发者和测试工程师提供详尽的测试策略和实践方法。本书涵盖了API测试、GUI测试、单元测试以及功能测试等多个关键方面,帮助读者...
QuickTest Professional Automation Object Model Reference shipped with QTP 1.0 (English Version)
Python Unit Test Automation will allow you to quickly ramp up your understanding of unit test libraries for Python 3 through the practical use of code examples and exercises. All of which makes this ...
Mastering Mobile Test Automation 英文azw3 本资源转载自网络,如有侵权,请联系上传者删除
Mobile Test Automation with Appium 英文mobi 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Python Unit Test Automation Practical Techniques for Python Developers and Testers 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开
Mobile Test Automation with Appium 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
When they discuss software test automation, they introduce third-party testing tools. This book describes techniques for developing a fully automated software testing tool. You can use this tool to ...
Mobile Test Automation with Appium 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Python Unit Test Automation 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息...
### DeviceAnywhere Test Automation 5.0 入门指南 #### 概述 本文档旨在介绍如何使用DeviceAnywhere Test Automation工具来进行移动设备的自动化测试。随着移动应用市场的不断扩展,确保移动应用的质量已成为至关...
STF是一个开源项目,由OpenSTF(Open Source Smartphone Test Farm)团队维护,旨在提供一个集中式的设备管理系统,以便于进行大规模的设备测试和自动化操作。 **功能与用途** 1. **设备管理**:`openstf`库提供了...