일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- SWIFT
- sshpass
- GoCD
- Jupyter
- perfect
- STF_PortForwarding
- appium server
- nGrinder
- port forwarding
- mysql
- openpyxl
- insert
- nohup
- STF
- Jupyter Notebook
- 28015
- ubuntu
- centos
- Materials
- create table
- nmap
- postgresql
- kitura
- ftp
- ssh
- appium
- rethinkdb
- postgres
- 실행권한
- PYTHON
- Today
- Total
목록분류 전체보기 (323)
don't stop believing
Appium에서 Unity App에 대한 자동화 스크립트 입니다. Unity App이기 때문에 화면이 이미지로 인식되어 element를 찾을 수 없습니다. 그래서 OpenCV를 적용해 이미지 매칭(template matching)을 사용했습니다. OpenCV는 아래 url을 참고해 주세요. [http://dejavuqa.tistory.com/category/Python/OpenCV] template matching을 사용하기 위해 두개의 함수를 만들었습니다. 하나는 자동으로 Canny해주는 함수고 다른 하나는 디바이스의 화면을 screenshot 후 찾으려는 이미지를 매치해 가운데 좌표를 반환하는 함수입니다. 먼저 auto_canny() 입니다. 이미지의 외곽선만 표시해 단순화 합니다. def auto_..
Unity 앱의 경우 화면이 모두 image이기 때문에 element를 찾을 수 없습니다. 그래서 openCV와 같은 이미지 matching을 사용해 처리하게 됩니다.Appium에서 LG V10을 save_screenshot()로 이미지를 저장했을 경우 1440 X 2560의 이미지를 얻을 수 있습니다. 하지만 클릭할 수 있는 영역은 제한되는 것을 확인하였습니다. 하단 Start 버튼을 template matching해서 버튼의 가운데 좌표를 찾아옵니다. 그러면 720, 2408이 됩니다. 하지만 TouchAction().tap()을 이용해 해당 좌표 클릭하게 했을 경우 아래와 같은 메시지가 나오게 됩니다.selenium.common.exceptions.WebDriverException: Message:..
OpenAI Gym이 어떤 것이냐면 아래 써있습니다.[https://gym.openai.com/docs/]OpenAI Gym is a toolkit for developing and comparing reinforcement learning algorithms. It makes no assumptions about the structure of your agent, and is compatible with any numerical computation library, such as TensorFlow or Theano. You can use it from Python code, and soon from other languages. 강화학습을 배우면서 OpenAI Gym을 사용해 보게 되었습니다.우선 설..
Appium에서 iOS를 실행하며 확인한 몇 가지 사항. 1. Inspector에서 iOS 앱이 설치되지 않았다.Enterprise 배포 앱의 api파일의 경우 Inspector로 설치가 되지 않았습니다.인증서가 없어서 설치되지 않았다는 메시지가 나오는데 찾아보니 appium에서는 Development 배포 앱만 설치가 된다고 합니다. 확인한 사항은 iPhone에 앱이 이미 설치되어 있을 경우에는 새로 빌드후 설치하지 않고 설치되어 있는 앱을 실행하게 됩니다. 따라서 iPhone에 설치되어 있는 앱이라면 Bundle ID만 알면 appium으로 실행할 수 있습니다. 2. Real Device에서는 설치가 된다.1번과 같은 Desired capability로 Real Device에서 실행했을때는 api 파..
Mac에서 svn 클라이언트 앱을 설치해 사용하기 귀찮아 svn command를 사용한다. 먼저 svn이 설치되어 있는지 확인해 보자. $ svn --version svn, version 1.9.4 (r1740329) compiled Oct 11 2017, 15:23:17 on x86_64-apple-darwin16.1.0 1.9.4 버전이 설치되어 있다고 나옵니다. svn 명령이 어떤것이 있는지 확인하려면 svn help를 하면 됩니다. 특정 명령에 대한 옵션이나 사용법을 확인하려면 svn help를 하면 됩니다. checkout에 대한 옵션을 확인하고 싶다면 svn checkout help를 하면 됩니다. $ svn help $ svn checkout help svn이 설치되어 있는걸 확이했으니 ch..
Appium 에서는 Development Signed App만 실행된다고 합니다. 테스트해야할 대상 app이 xcode 프로젝트가 아닌 Enterprise Distribution App일 경우(api 파일만 있는 경우)는 Device에 설치가 되지 않습니다. 이럴 경우 ipa 파일을 iTunes 등으로 Device에 설치하고 아래와 같이 Bundle ID를 지정해 주면 됩니다. Device에 이미 설치되어 있는지 확인하고 설치되어 있다면 바로 App을 실행하게 됩니다. (당황스러운 것은 iTunes 12.7부터 앱관리가 없어졌다는 것... ) { "platformName": "ios", "platformVersion": "11.0", "deviceName": "iPhone 6", "automationNa..
Appium 설치와 구성, Instpector 확인까지 했다면 Python Appium Client로 연결하고 동작시켜 봅시다. 설치는 pip으로 해줍니다. $ pip3 install Appium-Python-Client 먼저 Android부터 해봅시다. Python 코드는 아래와 같습니다. ''' Android Native Script ''' import unittest import os from appium import webdriver from time import sleep from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.su..
OpenCV를 이용해 template matching을 하는데 문제가 하나 있었습니다.Appium의 save_screenshot()으로 디바이스의 이미지를 capture한 후 OpenCV를 이용해 matchTemplate()을 할때 template이미지의 사이즈가 capture한 원본 사이즈와 동일해야 잘 찾을 수 있었습니다.template 이미지의 사이즈가 원본 이미지에서 찾으려는 부분과 사이즈가 다르다면 잘못된 것을 찾습니다. 원본 사이즈의 찾으려는 부분이 template의 사이즈와 일치해야 합니다. 비슷한 이미지도 잘 찾아 집니다. Appium을 이용해 Unity App에 대한 자동화 테스트를 진행할 때 디바이스의 해상도별 template을 준비해야 됩니디.
OpenCV의 canny에 대해 search하다 괜찮은 post를 봤습니다. 괜찮으면 바로 따라해 봐야죠. https://www.pyimagesearch.com/2015/04/06/zero-parameter-automatic-canny-edge-detection-with-python-and-opencv/ 바로 소스코드부터 확인해 보겠습니다. # import the necessary packages import numpy as np import argparse import glob import cv2 def auto_canny(image, sigma=0.33): # compute the median of the single channel pixel intensities v = np.median(image)..