Giter Club home page Giter Club logo

stf-poc's Introduction

PoC for STF deployment on a single machine

Installation

  • install docker
  • install docker-compose
  • clone this repo

Usage

choose an IP your deployment should use, usually that will be the IP of your host.
choose a secret to be used for inter-service authentication.
Update the .env file accordingly

Run docker-compose up -d --build
Point your browser to the IP you chose,
login by providing any username and valid e-mail.

A little write-up on this setup:
https://medium.com/@nikosch86/getting-started-with-automated-in-house-testing-on-android-smartphones-using-stf-dafecee4a8ee
If you clap it will make me happy :)

stf-poc's People

Contributors

htonkovac avatar jure965 avatar nikosch86 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stf-poc's Issues

Connect emulator

Hi, help me pls
How can I connect emulator?
stf-poc is running and dashboard stf is opening
emulator is runing and 'adb devices' have output-
List of devices attached
emulator-5554 device

but on dashboard stf in Devices tab is not visible-what problem?

Docker build error: chown: invalid user: ‘stf:stf’

HI,
Error is coming from this path of dockerfile stf-poc/storage-temp/Dockerfile

When i am building the docker image getting this issue.

chown: invalid user: ‘stf:stf’
ERROR: Service 'storage-temp' failed to build : The command '/bin/sh -c mkdir data && chown stf:stf data' returned a non-zero code: 1

Not able to access the URL

I am not able to access the portal by browser could you please help

Containers
Creating stfpocmaster_dev-triproxy_1 ... done
Creating stfpocmaster_adb_1 ... done
Creating stfpocmaster_auth_1 ... done
Creating stfpocmaster_triproxy_1 ... done
Creating stfpocmaster_rethinkdb_1 ... done
Creating stfpocmaster_storage-temp_1 ... done
Creating stfpocmaster_migrate_1 ... done
Creating stfpocmaster_processor_1 ... done
Creating stfpocmaster_provider_1 ... done
Creating stfpocmaster_storage-plugin-apk_1 ... done
Creating stfpocmaster_storage-plugin-image_1 ... done
Creating stfpocmaster_websocket_1 ... done
Creating stfpocmaster_api_1 ... done
Creating stfpocmaster_reaper_1 ... done
Creating stfpocmaster_app_1 ... done
Creating stfpocmaster_nginx_1 ... done

Public IP: 127.0.0.1

can't take screenshot and install apps

@nikosch86 Thanks for your great job!
I've run it but met issue that screenshot function did not work , I got logs from container runing stf provider command :

docker logs  --details 9ac 

2018-09-08T13:56:24.486Z ERR/device:support:storage 18 [0123456789ABCDEF] Upload to "http://192.168.0.107/s/upload/image" failed: HTTP 502
 2018-09-08T13:56:24.532Z ERR/device:plugins:screen:capture 18 [0123456789ABCDEF] Screen capture failed Error: Upload to "http://192.168.0.107/s/upload/image" failed: HTTP 502
     at Request._callback (/app/lib/units/device/support/storage.js:29:27)
     at Request.self.callback (/app/node_modules/request/request.js:185:22)
     at emitTwo (events.js:106:13)
     at Request.emit (events.js:191:7)
     at Request.<anonymous> (/app/node_modules/request/request.js:1161:10)
     at emitOne (events.js:96:13)
     at Request.emit (events.js:188:7)
     at IncomingMessage.<anonymous> (/app/node_modules/request/request.js:1083:12)
     at IncomingMessage.g (events.js:292:16)
     at emitNone (events.js:91:20)
     at IncomingMessage.emit (events.js:185:7)
     at endReadableNT (_stream_readable.js:974:12)
     at _combinedTickCallback (internal/process/next_tick.js:80:11)
     at process._tickCallback (internal/process/next_tick.js:104:9)

I 've checked it for days and doubted the permission on stf-poc_storage-temp that stopping me writing screenshot images into it, but no progress. Any ideas?

Help Needed

I want this to deploy on any other port then 8080. Can you help me with this please ?

Getting entrypoint.sh not found

Hi, running everythong according to readme file throws the following error

stf-poc_nginx_1 exited with code 127
nginx_1 | /docker-entrypoint.sh: 38: exec: /entrypoint.sh: not found

any idea why this might happen?

PS: I am using Docker desktop for windows running on WSL 2

Using appium

Hi, thanks for sharing this project.
I have an entire solution installed on the host machine - OpenSTF and Appium to run automation scripts that works.
And I would like to use your Project on Docker
I have used your Project with Docker and it worked well. But my main goal now is to use Appium for test automation but both, OpenSTF and Appium, depends on ADB.
In this context, I would like to use the following image: "appium/appium" . As this image already has ADB, so I’ve changed the adb container image from "sorccu/adb:latest" to "appium/appium". I’ve also made this changes on container provider:

Command:
From: --adb-host adb command -min-port 7400 --max-port 7700
To: --adb- host adb --min-port 5555 --max-port 5585

Ports:
From: ports: 7400-7700:7400-7700
To: ports: 5555-5585:5555-5585

The adb devices works on appium Docker but OpenSTF doesnt recognize the smartphones even guaranteeing that both containers are commnucatiing to each other (I set up the network,etc)

Is it possible to use the appium/appium image instead of "sorccu/adb:latest"?
Do you have any advice to share with me?

TKS

Doesn't start with stf:latest

Hello!
thanks for such nice config!

but, noticed that stf:latest fails with: "Missing required arguments: connect-push-dev, connect-sub-dev"

Disconnected device error

Thanks for great job.
I followed the instruction and started on browser successfully. However, the device is connected to PC, but it shows Disconnected. And it does not recognize emulator.
Please help to fix this issue

image

Can't see devices which are connected over wifi

Hi, thanks for helping us and closing all the issues.
Everything seems to be working as expected and all the emulator and physical devices which are connected to the machine are displaying properly.

But the devices which are connect via wifi is not displayed in STF dashboard, requesting if you can help me with this issue.

Can't access rethinkdb UI

Hello there!

Dont know if u guys are still replying, but if so, I would really appreciate if u guys can help on this. I follow the read.me instructions about installing openstf-poc.
I set a centos 7 machine
Installed docker and docker-compose successfully
cloned the stf-poc.git repo
I deployed and had access to the farm GUI
But I cant access rethinkdb UI
I read that its available on the localhost:8080 by it doesnt work
Is that something I can do to access the rethinkdb UI?
I need to access to remove no longer used devices
I would really appreciate if u guys can give a help. Tnx y'all

Configuring this solution with SSL

Hello,

really great article :)
I would like to use your solution to set up a laboratory at my University. Do you think adding https support would be as simple as changing the ngnix configuration?

Thanks in advance,

Hrvoje

Just run provider and error occur

Hi, thanks for your compose script, and i just run provider on centos, but i found error, it seems like stf-poc_adb container can't find adb command:

Here is the script:

version: '2'

volumes:
  storage-temp:

services:
  adb:
    image: sorccu/adb:latest
    restart: unless-stopped
    privileged: true
    volumes:
      - /dev/bus/usb:/dev/bus/usb
  triproxy:
    image: openstf/stf:latest
    restart: unless-stopped
    command: stf triproxy app --bind-pub "tcp://*:7150" --bind-dealer "tcp://*:7160" --bind-pull "tcp://*:7170"
  dev-triproxy:
    image: openstf/stf:latest
    restart: unless-stopped
    command: stf triproxy dev --bind-pub "tcp://*:7250" --bind-dealer "tcp://*:7260" --bind-pull "tcp://*:7270"
  provider:
    image: openstf/stf:latest
    restart: unless-stopped
    command: stf provider --name ${STATION_NAME} --connect-sub tcp://dev-triproxy:7250 --connect-push tcp://dev-triproxy:7270 --storage-url http://${PUBLIC_IP}/ --public-ip ${PUBLIC_IP} --heartbeat-interval 10000 --screen-ws-url-pattern "ws://${PUBLIC_IP}/d/nuc/3RP4C18102010991/5037/" --min-port 7400 --max-port 7700
    ports:
      - 7400-7700:7400-7700
    depends_on:
      - adb
      - dev-triproxy
      - triproxy
      - storage-temp
  storage-temp:
    build: storage-temp/
    restart: unless-stopped
    volumes:
      - storage-temp:/app/data
    command: stf storage-temp --port 3000 --save-dir /app/data

Here is the logs:

[root@centos-linux stf-poc]# docker logs 95b4a4b3ad13
2018-10-04T14:05:42.196Z INF/provider 1 [*] Subscribing to permanent channel "Gi/y/mjIQJGB8K+e5U3g7w=="
2018-10-04T14:05:42.211Z INF/provider 1 [*] Sending output to "tcp://dev-triproxy:7270"
2018-10-04T14:05:42.212Z INF/provider 1 [*] Receiving input from "tcp://dev-triproxy:7250"
Unhandled rejection Error: spawn adb ENOENT
    at exports._errnoException (util.js:1020:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
    at onErrorNT (internal/child_process.js:367:16)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)

Here is the docker containers:

[root@centos-linux stf-poc]# docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED              STATUS              PORTS                                        NAMES
95b4a4b3ad13        openstf/stf:latest     "stf provider --name…"   About a minute ago   Up About a minute   3000/tcp, 0.0.0.0:7400-7700->7400-7700/tcp   stf-poc_provider_1
10b69fd77d16        stf-poc_storage-temp   "stf storage-temp --…"   About a minute ago   Up About a minute   3000/tcp                                     stf-poc_storage-temp_1
b93d8ec34596        sorccu/adb:latest      "/sbin/tini -- adb -…"   About a minute ago   Up About a minute   5037/tcp                                     stf-poc_adb_1
07b774599f3c        openstf/stf:latest     "stf triproxy dev --…"   About a minute ago   Up About a minute   3000/tcp                                     stf-poc_dev-triproxy_1
14622a0b5fd0        openstf/stf:latest     "stf triproxy app --…"   About a minute ago   Up About a minute   3000/tcp                                     stf-poc_triproxy_1

help master

can i chang .env file
example: PUBLIC_IP=192.168.0.100:8339

because master host is nas
default open 5000 port
if not appoint 8339 the get 192.168.0.100:5000

Cannot Control Device

I've follow all step, successful open dashboard STF and my device show in list device. but when i choose device, i can't control my device, in remote debug all field is empty.

FYI: i'm edit your docker-compose.yml. I change port of nginx from 80:80 into 3000:80 becase there is error cause port 80 already use.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.