openstf / stf Goto Github PK
View Code? Open in Web Editor NEWControl and manage Android devices from your browser.
Home Page: https://openstf.io
License: Other
Control and manage Android devices from your browser.
Home Page: https://openstf.io
License: Other
In newer version of Android studio, an adb connect
ed STF device is sometimes lost in the middle of everything.
From initial packet capture logs it looks like it the connection is terminated on ADB side, after an A_OPEN somehow fails (and STF then responds with A_CLSE directly). Further investigation required.
It was only added to play store a few months ago so no big deal.
APK is com.chrome.dev
https://play.google.com/store/apps/details?id=com.chrome.dev
(btw Googlers have access to com.chrome.canary too, but it's not public yet)
Hi,
I know STF provides authentication units for OAuth 2.0, LDAP, mock. When we run stf with this command "stf local", it will use mock implementation which only asks for a name and an email address.
But I want to use true user authentication by LDAP, suppose that we have a LDAP server like xxxx.xxxx.xxx:222, but how I run STF and use which command? Please help give some guidance, thanks a lot.
I had two devices up and running. Tried to do adb connect on one of them. It seemed to work but then I had a failure.
Looks like it came from minicap but STF disconnected as a result.
Feel free to close, but figured you'd appreciate the report.
Cheers guys. (This project is blowing my mind)
INF/device:plugins:connect 80128 [T076001226] New remote ADB connection from ::ffff:127.0.0.1
INF/provider 80100 [*] Found device "localhost:7403" (offline)
INF/reaper 80099 [reaper001] Device "localhost:7403" is present
INF/provider 80100 [*] Registered device "localhost:7403"
INF/provider 80100 [*] Providing all 2 of 3 device(s); ignoring "localhost:7403"
INF/provider 80100 [*] Device "localhost:7403" is now "device" (was "offline")
INF/device:support:push 80167 [localhost:7403] Sending output to "tcp://127.0.0.1:7116"
INF/device 80167 [localhost:7403] Preparing device
INF/device:support:sub 80167 [localhost:7403] Receiving input from "tcp://127.0.0.1:7114"
INF/device:support:sub 80167 [localhost:7403] Subscribing to permanent channel "*ALL"
INF/device:support:properties 80167 [localhost:7403] Loading properties
INF/device:support:abi 80167 [localhost:7403] Supports ABIs armeabi-v7a, armeabi
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (jni/minicap/minicap.cpp:176) Received SIGTERM, stopping"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (jni/minicap/minicap.cpp:478) Closing client connection"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:280) Destroying virtual display"
WRN/device:plugins:screen:stream 80128 [T076001226] Shell keeping minicap running ended unexpectedly
INF/device:plugins:screen:stream 80128 [T076001226] Disconnecting from minicap service
INF/device:plugins:screen:stream 80128 [T076001226] Stopping minicap service
INF/device:plugins:screen:stream 80128 [T076001226] Launching screen service
INF/device:plugins:screen:stream 80128 [T076001226] Connecting to minicap service
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "PID: 19794"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: Using projection 720x1280@377x670/0"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:236) Creating SurfaceComposerClient"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:239) Performing SurfaceComposerClient init check"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:246) Creating virtual display"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:252) Creating buffer queue"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:257) Creating CPU consumer"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:261) Creating frame waiter"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:265) Publishing virtual display"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (jni/minicap/JpgEncoder.cpp:64) Allocating 2766852 bytes for JPG encoder"
INF/device:plugins:screen:stream 80128 [T076001226] Reading minicap banner
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (jni/minicap/minicap.cpp:423) New client connection"
WRN/device:plugins:screen:stream 80128 [T076001226] Shell keeping minicap running ended unexpectedly
INF/device:plugins:screen:stream 80128 [T076001226] Disconnecting from minicap service
INF/device:plugins:screen:stream 80128 [T076001226] Stopping minicap service
INF/device:plugins:screen:stream 80128 [T076001226] Launching screen service
INF/device:plugins:screen:stream 80128 [T076001226] Connecting to minicap service
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "PID: 19843"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: Using projection 720x1280@377x670/0"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:236) Creating SurfaceComposerClient"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:239) Performing SurfaceComposerClient init check"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:246) Creating virtual display"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:252) Creating buffer queue"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:257) Creating CPU consumer"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:261) Creating frame waiter"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:265) Publishing virtual display"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (jni/minicap/JpgEncoder.cpp:64) Allocating 2766852 bytes for JPG encoder"
INF/device:plugins:screen:stream 80128 [T076001226] Reading minicap banner
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (jni/minicap/minicap.cpp:423) New client connection"
WRN/device:plugins:screen:stream 80128 [T076001226] Shell keeping minicap running ended unexpectedly
INF/device:plugins:screen:stream 80128 [T076001226] Disconnecting from minicap service
INF/device:plugins:screen:stream 80128 [T076001226] Stopping minicap service
INF/device:plugins:screen:stream 80128 [T076001226] Launching screen service
INF/device:plugins:screen:stream 80128 [T076001226] Connecting to minicap service
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "PID: 19892"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: Using projection 720x1280@377x670/0"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:236) Creating SurfaceComposerClient"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:239) Performing SurfaceComposerClient init check"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:246) Creating virtual display"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:252) Creating buffer queue"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:257) Creating CPU consumer"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:261) Creating frame waiter"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (external/MY_minicap/src/minicap_22.cpp:265) Publishing virtual display"
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (jni/minicap/JpgEncoder.cpp:64) Allocating 2766852 bytes for JPG encoder"
INF/device:plugins:screen:stream 80128 [T076001226] Reading minicap banner
INF/device:plugins:screen:stream 80128 [T076001226] minicap says: "INFO: (jni/minicap/minicap.cpp:423) New client connection"
WRN/device:plugins:screen:stream 80128 [T076001226] Shell keeping minicap running ended unexpectedly
INF/device:plugins:screen:stream 80128 [T076001226] Disconnecting from minicap service
FTL/device:plugins:screen:stream 80128 [T076001226] Frame producer had an error Error: Failed more than 3 times in 10000ms
at FrameProducer._failLimitExceeded (/Users/paulirish/.homebrew/lib/node_modules/stf/lib/units/device/plugins/screen/stream.js:219:26)
at FailCounter.emit (/Users/paulirish/.homebrew/lib/node_modules/stf/node_modules/eventemitter3/index.js:73:35)
at FailCounter.inc (/Users/paulirish/.homebrew/lib/node_modules/stf/lib/util/failcounter.js:29:10)
at FrameProducer._outputEnded (/Users/paulirish/.homebrew/lib/node_modules/stf/lib/units/device/plugins/screen/stream.js:212:24)
at RiskyStream.emit (/Users/paulirish/.homebrew/lib/node_modules/stf/node_modules/eventemitter3/index.js:71:35)
at RiskyStream.<anonymous> (/Users/paulirish/.homebrew/lib/node_modules/stf/lib/util/riskystream.js:13:12)
at Socket.emit (events.js:129:20)
at _stream_readable.js:908:16
at process._tickCallback (node.js:355:11)
FTL/util:lifecycle 80128 [T076001226] Shutting down due to fatal error
INF/provider 80100 [*] Lost device "localhost:7403" (device)
INF/provider 80100 [*] Shutting down device worker "localhost:7403"
INF/provider 80100 [*] Gracefully killing device worker "localhost:7403"
INF/provider 80100 [*] Cleaning up device worker "T076001226"
ERR/provider 80100 [*] Device worker "T076001226" died with code 1
INF/provider 80100 [*] Restarting device worker "T076001226"
FTL/device 80167 [localhost:7403] Setup had an error FailError: Failure: 'device not found'
at /Users/paulirish/.homebrew/lib/node_modules/stf/node_modules/adbkit/lib/adb/parser.js:226:31
From previous event:
at Parser.readError (/Users/paulirish/.homebrew/lib/node_modules/stf/node_modules/adbkit/lib/adb/parser.js:225:31)
at /Users/paulirish/.homebrew/lib/node_modules/stf/node_modules/adbkit/lib/adb/command/host/transport.js:25:35
From previous event:
at HostTransportCommand.execute (/Users/paulirish/.homebrew/lib/node_modules/stf/node_modules/adbkit/lib/adb/command/host/transport.js:19:39)
at /Users/paulirish/.homebrew/lib/node_modules/stf/node_modules/adbkit/lib/adb/client.js:257:47
From previous event:
at Client.transport (/Users/paulirish/.homebrew/lib/node_modules/stf/node_modules/adbkit/lib/adb/client.js:256:32)
at Client.shell (/Users/paulirish/.homebrew/lib/node_modules/stf/node_modules/adbkit/lib/adb/client.js:262:19)
at devutil.listPidsByComm (/Users/paulirish/.homebrew/lib/node_modules/stf/lib/util/devutil.js:69:14)
at devutil.killProcsByComm (/Users/paulirish/.homebrew/lib/node_modules/stf/lib/util/devutil.js:106:18)
at /Users/paulirish/.homebrew/lib/node_modules/stf/lib/util/devutil.js:122:26
From previous event:
at /Users/paulirish/.homebrew/lib/node_modules/stf/lib/util/devutil.js:121:15
From previous event:
at devutil.killProcsByComm (/Users/paulirish/.homebrew/lib/node_modules/stf/lib/util/devutil.js:107:6)
at /Users/paulirish/.homebrew/lib/node_modules/stf/lib/util/devutil.js:122:26
at processImmediate [as _immediateCallback] (timers.js:358:17)
FTL/util:lifecycle 80167 [localhost:7403] Shutting down due to fatal error
INF/provider 80100 [*] Device worker "localhost:7403" has retired
hi, my computer doesn't has systemd and it uses init , can stf deploy on my computer?
and my computer only has one port for public net and the port is 80, how can i deploy stf on my computer and visit it from the public net?
thank you for this wonderful project , it helps me a lot
i have a NX device and sdk is 17, but i find that the screen only shows the first capture and do not move again. on my device my act takes effect and the screen changed , but in the brower the screen do not move. do you have any suggestions for that?
For stf-device-db.
Ways to POST data to Google Spreadsheets:
Possible ways to send the data:
I had to install pkg-config to get it to work:
$ brew install pkg-config
Perhaps update your documentation. You can close this as non-issue of course.
I have a Galaxy Nexus connected to an Ubuntu machine which doesn't seem to show the screen sharing at all (all I see is grey). Everything else about the device connect to OpenSTF, i.e. I can interact with the device with my mouse on the grey screen and I see it on my phone, adb connect, etc.
I realize this isn't much details to work on, but please let know what other details I can provide to help debug this.
Hello,
I would like to repport a bug i'm facing with the Sony Xperia S on Android 4.0.4:
I control the Smartphone without any problem. This real device has a material camera button. A long press on it launch the camera application.
On the Advanced Tab of STF, a clic on the Camera button has no effect. A Long clic neither.
In addition, if on the device I launch the camera, the screen is black (but all controls are okay). See this attachment:
Hi
Firstly, thanks for you great project.
I have a question about how to expand device pool to 100+? Suppose one PC has 4 motherboard's USB ports, and each one connects to a usb hub with 7 ports. It can only connect to 28 devices, how we can expand to 100+?
Hi,May I ask a question? When I click Screenshots, I can see a picture in the window of Screenshots , but I can't open the image when I click it,The new window will be prompted“The image http://localhost:7100/s/image/75eaef9a-0504-4a2c-8ffa-0d17ab1c3963/0e8bc602.jpg cannot be displayed because it contains errors”.
I have been troubled by the problem for several days,Looking forward to your answer,Thanks
I am trying to start rethinkdb in different port than the default one (command used - rethinkdb -o 8081) and then start "stf" (command used - stf local). But I am getting an error as -
INF/util:procutil 6386 [] Forking "/home/xxx/xxx/stf/lib/cli.js migrate"
INF/db 6394 [] Connecting to 127.0.0.1:28015
INF/db 6394 [] Unable to connect to 127.0.0.1:28015
FTL/db 6394 [] No hosts left to try
FTL/util:lifecycle 6394 [*] Shutting down due to fatal error
/home/zaloraqa/Downloads/stf/node_modules/bluebird/js/main/promise.js:673
throw e;
^
ExitError: Exit code "1"
at ChildProcess. (/home/xxxx/xxxx/stf/lib/util/procutil.js:49:23)
at ChildProcess.emit (events.js:110:17)
at Process.ChildProcess._handle.onexit (child_process.js:1074:12)
So please let me know is it possible to run stf when renthinkdb not running in default port (8080)
Thanks
Currently pressing Shift+Click opens Standalone mode, however it needs better discoverability.
Possible options:
Would that be possible? Currently running raspbian, but I get hit with a lot of installation and configuration.
Do you have any guides or tips?
We support pushing files (currently only APK files), so might as well support pulling a file from a path.
As reported in https://groups.google.com/forum/#!topic/openstf/KE7I9b8EkgU, dragging from the screen edge to trigger, for example, a side menu, won't sometimes work because you end up resizing the browser instead. Adding some margin would solve the issue, but reduce the available space for the screen itself.
One possible option would perhaps be to wait for a few seconds when the pointer is in close proximity of the screen edges, and then "zoom out" a little bit so that it becomes possible to drag from the edge.
Hello guys,
I'm investigating STF and I'm facing a limitation:
On the real device, i've a "system" button that display all the currently running application. On this "task manager" view, I can kill some process. On the control screen of STF, there are 3 buttons: "Menu", "Home" and "Back". On my real device, there are 3 buttons: "System", "Home" and "Back".
How to simulate a click on this "System" button ?
How to replace the "Menu" button by a "System" button ?
Does exist a way to display the "task manager" view with STF ?
What is the Shell command to kill an Android process ?
Thanks for your answers.
What about a view only mode? So if you have automated testing you can view what is going on w/o control the device.
Hello guys,
Thanks for this awesome tool. I had fun in setting up this locally and its quite useful for debugging my apps.
The kind of feature I wish from STF is running UI Test Suites (Appium, Robotium, monkey runner etc) parallel on multiple devices similar to services such as testdroid, AWS Device Farm etc.
For this, they provide a feature for creating custom device pool where user can create a device group of their target devices. Then you upload your apk file and test suites then they will run your test and provide test results. They also provide apis for these features which makes CI integration easier.
I think it will be really helpful to have this kind of facility On-premises. It will give better control.
I want to know if this feature or something similar to this, is in your roadmap? If it is, please share how you want to implement this. I will be glad to contribute :)
Thanks,
Add Travis CI integration and a badge to the README.
Mainly for scrolling web pages, but should work on regular apps also.
It should simulate the swipe gesture in the opposite direction.
Make sure MacBook trackpad scrolling works nicely enough.
For reference:
http://chromedevtools.github.io/debugger-protocol-viewer/Input/
synthesizeScrollGesture
Add the free open source Saucelabs integration for Frontend E2E tests.
Update tests accordingly.
Reasons:
Ways to do it:
What to adjust:
i run on my android tv box and gets this error
minicap error: "ERROR: (external/MY_minicap/src/minicap_17.cpp:123: errno: Invalid argument) Unable to lock next buffer BAD_VALUE (-22)"
is it something wrong with my android device or can i do something to fix it?
Already doing it for the Standalone mode.
But in normal mode it might be annoying so test it first.
It's crazy good. seriously. Kicks the pants off Chrome devtools screencasting. :)
That said there appears to be something blocking a solid 60fps.
Here's what i'm seeing after profiling the full STF app using about:tracing
the real thing here is that we're in the resourcefetcher for the blob for a long ass time. that's really what's slowing down this process.
Here's the start: https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp&q=%22%20TRACE_EVENT_ASYNC_BEGIN2(%22blink.net%22,%20%22Resource%22%22&sq=package:chromium&type=cs&l=901
Here's the end: https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp&q=%22TRACE_EVENT_ASYNC_END0(%22blink.net%22,%20%22Resource%22%22&sq=package:chromium&type=cs&l=797
what's interesting to me is that if i poke inside of the browser process... it reports finishing loading the blob at about halfway:
(the actual "requestcomplete" on the browserthread is offscreen in the screenshot)
it's possible whatever is handling the blob URL is unimplemented, but right now it appears to be taking longer than I'd expect. might be a chrome bug.
In these cases we do two image decodes and throw one of them away immediately.
Not sure yet why this is happening.
Last thing, I'd consider trying out requestAnimationFrame, only because it provides the scheduler with a lot more information on when you're ready to paint a frame. It has a low-latency mode so you can call rAF immediately once the image has loaded and you should get an instant paint.
Here's the trace file i'm looking at: https://dl.dropboxusercontent.com/u/39519/temp/trace_stf-screencapture.json.gz
Android 4.4+ have a built-in support for screen recording:
shell@mako:/ $ screenrecord --help
Usage: screenrecord [options] <filename>
Android screenrecord v1.2. Records the device's display to a .mp4 file.
Options:
--size WIDTHxHEIGHT
Set the video size, e.g. "1280x720". Default is the device's main
display resolution (if supported), 1280x720 if not. For best results,
use a size supported by the AVC encoder.
--bit-rate RATE
Set the video bit rate, in bits per second. Value may be specified as
bits or megabits, e.g. '4000000' is equivalent to '4M'. Default 4Mbps.
--bugreport
Add additional information, such as a timestamp overlay, that is helpful
in videos captured to illustrate bugs.
--time-limit TIME
Set the maximum recording time, in seconds. Default / maximum is 180.
--verbose
Display interesting information on stdout.
--help
Show this message.
Recording continues until Ctrl-C is hit or the time limit is reached.
Hello!
Thank you for awesome software!
Unfortunately I faced some problem with taking screenshots, I hope you can help me.
When I try to take a screenshot, I see an icon which shows screenshot image is not available:
When I try to click this image, I see following error message in a new browser tab:
The image "http://<my-ip>:7100/s/image/5aac3806-8ba7-4f29-bc49-1bcc1f28dede/<deviceName>.jpg" cannot be displayed because it contains errors.
I tried to download image by url, and noticed image is just empty file(0 bytes size).
Stf is launched in "local" mode on my ubuntu 14.04 desktop like this:
stf local --public-ip <my-ip>
[there is no X server running on desktop, if it is important]
I am trying to take screenshot from my laptop
So, in console log I noticed following messages:
INF/device:plugins:screen:capture 25422 [<deviceName>] Capturing screenshot INF/storage:temp 25341 [*] Uploaded "<deviceName>.jpg" to "/tmp/upload_04db85c0a0bff470298192dcaffd7049" INF/device:support:storage 25422 [<deviceName>] Uploaded to "/s/image/5aac3806-8ba7-4f29-bc49-1bcc1f28dede/<deviceName>.jpg"
I checked the file /tmp/upload_04db85c0a0bff470298192dcaffd7049
and found my screenshot.
Thank you for a great app! Immediately, we are using.
When you start with "$stf local" command, you can use in the http://localhost:7100, for example, start at IP address, such as 192.168.1.100, and we would like to access from other PC.
The start-up command was some experience, but the connection to the DB is becomes to "127.0.0.1:28015", it can not be started.
*"rethinkdb" is, "- bind all" you have to start it with the option.
In order to use to share the STF is allowed to access from other PC, but I want to start with IP address, Could you tell me how?
Check that all native dependencies are correctly installed (including version number).
It has to be an external script so that we can check any dependency problem (including a node/npm installation problem).
So, when navigating to STF, you get redirected to your localhost.
However, if you would want to connect from you iPhone that won't work, because it will just keep looking for the localhost of the phone, not from the other computer running STF. Also, when using a proxy, this won't work.
By just removing the redirect, this issue would be fixed (I guess?).
I submitted a ticket here 1 year ago, but current status is WontFix because "We are experimenting with alternative ways of implementing wireless debugging".
As long as there is any update on this, we need to update this ticket.
Hi,
I have a problem, here's my scenario:
It's normal if i access locally. Am i missed something?
As we have dozens of mobile devices we have to connect devices to different servers, then how to setup a central server to access all the devices?
i don't want the auth module , and i tried to disable it , but i don't have req.user in js
is it possible to disable auth module?
ForbiddenError: invalid csrf token
at verifytoken (/app/node_modules/csurf/index.js:269:11)
at csrf (/app/node_modules/csurf/index.js:97:7)
at Layer.handle as handle_request
at trim_prefix (/app/node_modules/express/lib/router/index.js:312:13)
at /app/node_modules/express/lib/router/index.js:280:7
at Function.process_params (/app/node_modules/express/lib/router/index.js:330:12)
at next (/app/node_modules/express/lib/router/index.js:271:10)
at jsonParser (/app/node_modules/body-parser/lib/types/json.js:107:37)
at Layer.handle as handle_request
at trim_prefix (/app/node_modules/express/lib/router/index.js:312:13)
at /app/node_modules/express/lib/router/index.js:280:7
at Function.process_params (/app/node_modules/express/lib/router/index.js:330:12)
at next (/app/node_modules/express/lib/router/index.js:271:10)
at /app/lib/units/app/middleware/auth.js:36:13
at tryCatcher (/app/node_modules/bluebird/js/main/util.js:24:31)
at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/main/promise.js:489:31)
met this problems when i test it in my environment. adb works and the whole log was attached.
root@ubuntu:/app# adb devices
List of devices attached
00445e524f8c5907 device
INF/device:support:sub 545 [00445e524f8c5907] Subscribing to permanent channel "ALL"
INF/device:support:properties 545 [00445e524f8c5907] Loading properties
INF/device:support:abi 545 [00445e524f8c5907] Supports ABIs armeabi-v7a, armeabi
INF/device:resources:service 545 [00445e524f8c5907] Checking whether we need to install STFService
INF/device:resources:service 545 [00445e524f8c5907] Running version check
INF/device:resources:service 545 [00445e524f8c5907] STFService up to date
INF/device:plugins:service 545 [00445e524f8c5907] Launching agent
INF/device:plugins:service 545 [00445e524f8c5907] Launching service
INF/device:plugins:service 545 [00445e524f8c5907] Agent says: "Listening on port 1090"
INF/device:plugins:service 545 [00445e524f8c5907] Agent says: "InputClient started"
INF/device:plugins:display 545 [00445e524f8c5907] Reading display info
INF/device:plugins:phone 545 [00445e524f8c5907] Fetching phone info
INF/device:plugins:identity 545 [00445e524f8c5907] Solving identity
INF/device:plugins:solo 545 [00445e524f8c5907] Subscribing to permanent channel "S+KScTlq18iysOfuoUm6iN5WyIc="
INF/device:plugins:screen:stream 545 [00445e524f8c5907] Starting WebSocket server on port 7400
INF/device:plugins:browser 545 [00445e524f8c5907] Loading browser list
INF/device:plugins:browser 545 [00445e524f8c5907] Updating browser list
WRN/device:plugins:data 545 [00445e524f8c5907] Unable to find device data { serial: '00445e524f8c5907',
platform: 'Android',
manufacturer: 'LGE',
operator: null,
model: 'Nexus 4',
version: '5.0',
abi: 'armeabi-v7a',
sdk: '21',
product: 'occam',
display:
{ id: 0,
width: 768,
height: 1280,
xdpi: 319.7900085449219,
ydpi: 318.7449951171875,
fps: 60,
density: 2,
rotation: 0,
secure: true,
size: 4.679082154320592,
url: 'ws://localhost:7400' },
phone: { imei: '353918051433593', network: 'UNKNOWN' } }
INF/device:plugins:touch 545 [00445e524f8c5907] Touch origin is top left
INF/device:plugins:touch 545 [00445e524f8c5907] Requesting touch consumer to start
INF/device:plugins:touch 545 [00445e524f8c5907] Launching screen service
INF/device:plugins:touch 545 [00445e524f8c5907] Connecting to minitouch service
INF/device:plugins:touch 545 [00445e524f8c5907] minitouch says: "Type B touch device touch_dev (1535x2559 with 10 contacts) detected on /dev/input/event2 (score 1100)"
INF/device:plugins:touch 545 [00445e524f8c5907] Reading minitouch banner
INF/device:plugins:touch 545 [00445e524f8c5907] minitouch says: "Connection established"
INF/device:plugins:forward 545 [00445e524f8c5907] Launching reverse port forwarding service
INF/device:plugins:forward 545 [00445e524f8c5907] Connecting to reverse port forwarding service
INF/device:plugins:connect 545 [00445e524f8c5907] Listening on port 7401
INF/device 545 [00445e524f8c5907] Fully operational
INF/provider 487 [] Providing all 1 device(s)
First STF working Great if we connect device via USB.
I was trying to connect device to adb with wifi
adb tcpip 5555
adb connect mobile-ip:5555
But now adb show wifi connected device on adb devices
command but stf display that device as disconnected.
Really great software! Thanks very much! 👍
There is a bit crazy idea - if it is ever possible - to redirect sound input/output to browser?
Might be useful for testing.
What do you think?
Also then one can finally leave phone at home and make calls from browser :-)
Hi, i am using stf with an android tv magic box , it's os is based on android and it is connected to adb using network , i use --allow-remote to start stf , when i try to control the device , it waits for a while and tells me some one stole your device , i don't know what dose that mean , what errors can cause that ?
Flickers (image missing for few ms) on the following environment:
Browser: Firefox 39
Hardware: Mac Ratina 15inch Late 2013
Happens in Galaxy S5
and Xperia Z4
at least.
Couldn't reproduce it locally.
GalaxyS5.mov | uploaded via ZenHub
Hi, thank you for your great app. I want to use node --debug to have a better understand of how it works. I tried node -- debug cli local, but it failed, both in node version 0.10 and 0.12. I googled and learned that this is a clustered app and all the workers attempted to listen on the same debug port. So how do you debug in your development? Can I set breakpoint on it? Can I debug it or part of it separately?
I can take screenshots and see them.
They are being saved in /var/folders/...
But when I change tabs from screenshot to any other tab and come back to screenshot they are gone from screenshots tab(but they are still saved on disk at /var/folders/...).
Hi,
here is the log:
stf local
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js migrate"
INF/db 24095 [] Connecting to 127.0.0.1:28015
INF/db:setup 24095 [] Database "stf" already exists
INF/db:setup 24095 [] Table "users" already exists
INF/db:setup 24095 [] Table "devices" already exists
INF/db:setup 24095 [] Table "logs" already exists
INF/db:setup 24095 [] Index "users"."adbKeys" already exists
INF/db:setup 24095 [] Index "devices"."owner" already exists
INF/db:setup 24095 [] Index "devices"."present" already exists
INF/db:setup 24095 [] Index "devices"."providerChannel" already exists
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js triproxy app001 --bind-pub tcp://127.0.0.1:7111 --bind-dealer tcp://127.0.0.1:7112 --bind-pull tcp://127.0.0.1:7113"
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js triproxy dev001 --bind-pub tcp://127.0.0.1:7114 --bind-dealer tcp://127.0.0.1:7115 --bind-pull tcp://127.0.0.1:7116"
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js processor proc001 --connect-app-dealer tcp://127.0.0.1:7112 --connect-dev-dealer tcp://127.0.0.1:7115"
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js processor proc002 --connect-app-dealer tcp://127.0.0.1:7112 --connect-dev-dealer tcp://127.0.0.1:7115"
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js reaper reaper001 --connect-push tcp://127.0.0.1:7116 --connect-sub tcp://127.0.0.1:7111"
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js provider --name ubuntu --min-port 7400 --max-port 7700 --connect-sub tcp://127.0.0.1:7114 --connect-push tcp://127.0.0.1:7116 --group-timeout 900 --public-ip localhost --storage-url http://localhost:7100/ --adb-host 127.0.0.1 --adb-port 5037"
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js auth-mock --port 7120 --secret kute kittykat --app-url http://localhost:7100/"
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js app --port 7105 --secret kute kittykat --auth-url http://localhost:7100/auth/mock/ --websocket-url http://localhost:7110/"
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js websocket --port 7110 --secret kute kittykat --storage-url http://localhost:7100/ --connect-sub tcp://127.0.0.1:7111 --connect-push tcp://127.0.0.1:7113"
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js storage-temp --port 7102"
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js storage-plugin-image --port 7103 --storage-url http://localhost:7100/"
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js storage-plugin-apk --port 7104 --storage-url http://localhost:7100/"
INF/util:procutil 24092 [] Forking "/usr/lib/node_modules/stf/lib/cli.js poorxy --port 7100 --app-url http://localhost:7105/ --auth-url http://localhost:7120/ --websocket-url http://localhost:7110/ --storage-url http://localhost:7102/ --storage-plugin-image-url http://localhost:7103/ --storage-plugin-apk-url http://localhost:7104/"
INF/triproxy 24098 [app001] PUB socket bound on tcp://127.0.0.1:7111
INF/triproxy 24098 [app001] DEALER socket bound on tcp://127.0.0.1:7112
INF/triproxy 24098 [app001] PULL socket bound on tcp://127.0.0.1:7113
INF/triproxy 24099 [dev001] PUB socket bound on tcp://127.0.0.1:7114
INF/triproxy 24099 [dev001] DEALER socket bound on tcp://127.0.0.1:7115
INF/triproxy 24099 [dev001] PULL socket bound on tcp://127.0.0.1:7116
INF/reaper 24104 [reaper001] Subscribing to permanent channel "ALL"
INF/reaper 24104 [reaper001] Reaping devices with no heartbeat
INF/db 24104 [reaper001] Connecting to 127.0.0.1:28015
INF/db 24103 [proc002] Connecting to 127.0.0.1:28015
INF/reaper 24104 [reaper001] Receiving input from "tcp://127.0.0.1:7111"
INF/reaper 24104 [reaper001] Sending output to "tcp://127.0.0.1:7116"
INF/processor 24103 [proc002] App dealer connected to "tcp://127.0.0.1:7112"
INF/processor 24103 [proc002] Device dealer connected to "tcp://127.0.0.1:7115"
INF/db 24100 [proc001] Connecting to 127.0.0.1:28015
INF/processor 24100 [proc001] App dealer connected to "tcp://127.0.0.1:7112"
INF/processor 24100 [proc001] Device dealer connected to "tcp://127.0.0.1:7115"
INF/poorxy 24122 [] Listening on port 7100
INF/storage:plugins:image 24120 [] Listening on port 7103
INF/auth-mock 24106 [] Listening on port 7120
INF/storage:temp 24115 [] Listening on port 7102
INF/storage:plugins:apk 24121 [] Listening on port 7104
INF/provider 24105 [] Subscribing to permanent channel "O6uuMWGCQiygamxH7OprEA=="
INF/provider 24105 [] Sending output to "tcp://127.0.0.1:7116"
INF/provider 24105 [] Receiving input from "tcp://127.0.0.1:7114"
INF/provider 24105 [] Tracking devices
INF/provider 24105 [] Found device "0146B5681401101C" (offline)
INF/reaper 24104 [reaper001] Device "0146B5681401101C" is present
INF/provider 24105 [] Registered device "0146B5681401101C"
INF/app 24107 [] Using webpack
module.js:338
throw err;
^
Error: Cannot find module './../../../webpack.config'
at Function.Module.resolveFilename (module.js:336:15)
at Function.Module.load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at module.exports (/usr/lib/node_modules/stf/lib/units/app/index.js:56:31)
at Command. (/usr/lib/node_modules/stf/lib/cli.js:627:27)
at Command.listener (/usr/lib/node_modules/stf/node_modules/commander/index.js:301:8)
at Command.emit (events.js:110:17)
at Command.parseArgs (/usr/lib/node_modules/stf/node_modules/commander/index.js:610:12)
at Command.parse (/usr/lib/node_modules/stf/node_modules/commander/index.js:458:21)
at Object. (/usr/lib/node_modules/stf/lib/cli.js:1102:9)
at Module.compile (module.js:460:26)
at Object.Module.extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module.load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
FTL/cli:local 24092 [] Child process had an error ExitError: Exit code "1"
at ChildProcess. (/usr/lib/node_modules/stf/lib/util/procutil.js:49:23)
at ChildProcess.emit (events.js:110:17)
at Process.ChildProcess.handle.onexit (child_process.js:1074:12)
INF/cli:local 24092 [] Shutting down all child processes
INF/util:lifecycle 24098 [app001] Winding down for graceful exit
INF/util:lifecycle 24103 [proc002] Winding down for graceful exit
INF/util:lifecycle 24100 [proc001] Winding down for graceful exit
INF/util:lifecycle 24105 [] Winding down for graceful exit
INF/util:lifecycle 24104 [reaper001] Winding down for graceful exit
INF/util:lifecycle 24106 [] Winding down for graceful exit
INF/auth-mock 24106 [] Waiting for client connections to end
WRN/db 24104 [reaper001] Connection closed
INF/db 24104 [reaper001] Connecting to 127.0.0.1:28015
WRN/db 24100 [proc001] Connection closed
INF/db 24100 [proc001] Connecting to 127.0.0.1:28015
INF/websocket 24110 [] Subscribing to permanent channel "ALL"
INF/websocket 24110 [] Listening on port 7110
INF/util:lifecycle 24110 [] Winding down for graceful exit
INF/db 24110 [] Connecting to 127.0.0.1:28015
But... webpack seems to be installed:
npm install webpack -g
npm WARN optional dep failed, continuing [email protected]
/usr/bin/webpack -> /usr/lib/node_modules/webpack/bin/webpack.js
[email protected] /usr/lib/node_modules/webpack
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected]
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
Can you help?
Thanks.
The documentation in your README
for relevant hardware is excellent! You might consider adding another section, with advice on the physical setup of the device farm.
For example: what exactly is shown in the photo at the top of the README
, with the aluminum(?) slats holding the devices? My initial reaction was a rackmount system, but I would think that we would see holes in the vertical supports, and such holes do not appear in the photo.
Hello,
I'm trying to run STF with Docker, but I got an error
stf@10d2f43a5185:/app$ stf local
INF/util:procutil 13 [] Forking "/app/lib/cli.js migrate"
INF/db 14 [] Connecting to 127.0.0.1:28015
INF/db 14 [] Unable to connect to 127.0.0.1:28015
FTL/db 14 [] No hosts left to try
FTL/util:lifecycle 14 [*] Shutting down due to fatal error
/app/node_modules/bluebird/js/main/promise.js:673
throw e;
^
ExitError: Exit code "1"
at ChildProcess. (/app/lib/util/procutil.js:49:23)
at ChildProcess.emit (events.js:110:17)
at Process.ChildProcess._handle.onexit (child_process.js:1074:12)
Do you have an idea about the issue?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.