분류 전체보기 60

python - Appium 으로 스마트폰 무선 연동하고 컨트롤하기 - 6

이전 장에서는 동일 wifi 환경이 아니라 스마트폰의 LTE를 사용하거나 정말 멀리 떨어진 곳에서의 연결 방법에 대해 알아보았는데 최초 연결을 위해서는 USB를 사용하거나 동일한 wifi 환경에 있어야 했다. 이번 장에서는 스마트폰과 제어PC가 동일 wifi 환경이 아닌 곳에서 adb 최초을 하는 방법을 설명하고자 한다. 진행 방법은 이전에 소개했던 동일 wifi 환경에서의 접속과 유사하나 직접 만든 VPN 서버를 활용하여 마치 단말이 동일 wifi 환경 내에 있는 것처럼 인지하게 만드는 방법이다. *아래 내용 진행하면서 모르는 부분이 있으면 댓글 달아주세요. 1. 단말 wifi 설정후 private VPN 접속 (단말 입장에서 wifi에서 받은 사설 IP와 VPN에서 받은 사설 IP가 있음) - 예를 ..

Python/Do Something 2023.01.16

python - Appium 으로 스마트폰 무선 연동하고 컨트롤하기 - 5

이전 장에서는 PC~스마트폰 간의 연동을 위해 USB 또는 동일 Wifi 환경에서의 연동 방법에 대해 알아 보았고, 이번 장에서는 동일 wifi 환경이 아니라 스마트폰의 LTE를 사용하거나 정말 멀리 떨어진 곳에서의 연결 방법에 대해 알아보고자 한다. 우선 멀리 떨어진 곳에서 단말을 컨트롤하려면 정상적인 방법으로는 힘들고 VPN을 통한 연결이 필요하다. (PC ~ VPN 서버 ~ 스마트폰) 그럼 VPN 연결은 어떻게 할까? VPN 서버를 직접 구축하는 것이 생각보다 어렵지는 않으니 한번 해보도록 한다. 우선 공인 IP를 할당받을 수 서버가 필요한데.. 직접 구축하기는 어려우니 AWS, Vultr 등을 통해 가상 머신을 할당받고 그 위에 VPN을 구축하고자 한다. AWS를 사용할까 하다가 AWS는 워낙 내..

Python/Do Something 2023.01.16

python - Appium 으로 스마트폰 무선 연동하고 컨트롤하기 - 4

지난 장에서는 USB를 통해 PC~스마트폰과의 연결을 진행하였다. 이번 장에서는 wifi를 통한 PC~스마트폰과의 연결을 해보고자 한다. 스카트폰의 개발자 옵션에서 무선 디버깅을 클릭한다. 이때 스마트폰이 wifi를 잡고 있어햐만 무선 디버깅을 실행시킬 수 있다. (혹시 개발자 옵션을 모른다면 이전글 참조) 이후 '페어링 코드로 기기 페어링'을 클릭한다. 클릭하면 아래와 같이 페어링 코드와 IP 주소(wifi로부터 할당)가 나오는데 이를 통해 PC~스마트폰 간에 paring을 시도한다. 이제 PC의 cmd창에서 아래 명령어를 수행해서 pairing을 한다. (IP/Port는 바로 위에서 확인한 IP/Port 이다.) adb pair 172.23.100.217:38897 이제 paring 코드를 입력하라는..

Python/Do Something 2023.01.16

python - Appium 으로 스마트폰 무선 연동하고 컨트롤하기 - 3

이전 편에서 PC환경 구축을 위한 기본적인 세팅은 완료했고, 이제 appium server 및 doctor 설치를 하고 PC와 스마트폰을 연결하고자 한다. 혹시 PC 환경 구축이 끝나지 않았다면 이전 글을 참고하시길 바랍니다. 먼저 appium server를 설치한다. npm install appium -g​ 이후 appium 정상 동작 가능 여부 확인을 도와주는 doctor를 설치한다. npm install appium-doctor -g doctor를 설치했으니 appium server 정상 동작 가능 여부를 확인한다. C:\Users>appium-doctor --android 이제 스마트폰 제어를 위해 스마트폰 > 개발자 옵션에서 debugging 설정을 허용해야 하는데 스마트폰의 설정 화면 제일 아..

Python/Do Something 2023.01.16

python - Appium 으로 스마트폰 무선 연동하고 컨트롤하기 - 2

이전 편에서 PC환경 구축을 위해 JDK와 Android SDK 설치를 진행했고 이번 편에서는 Appium 설치를 하려고 한다. 1) Java JDK 설치 및 환경 변수 설정 2) Android SDK 설치 및 환경 변수 설정 3) Appium 설치 4) Node.js 설치 3) appium설치를 위해 아래 사이트로 이동후 'Downlaod appium'을 클릭한다. http://appium.io/ (아니면 바로 github로 이동해도 된다. https://github.com/appium/appium-desktop/releases) Releases · appium/appium-desktop Appium Server in Desktop GUIs for Mac, Windows, and Linux - appi..

Python/Do Something 2023.01.16

python - Appium 으로 스마트폰 무선 연동하고 컨트롤하기 - 1

이번에는 Appium을 통해 PC ~ 스마트폰을 연결하고 스마트폰을 자동으로 컨트롤해서 app등을 실행시키고 결과를 가져오고자 한다. Appium을 통해 스마트폰을 컨트롤하기 위해서는 아래 순서로 진행이 필요하다. 1. PC 환경 구축 (Java JDK, Android SDK, Appium 설치 등) 2. PC~스마트폰 간에 adb 연결 (USB를 통한 연결, Wi-fi를 통한 연결, 기타 무선 방법을 통한 연결) 3. adb 연결 이후 파이썬 스크립트를 통한 스마트폰 컨트롤 및 로그 수집 먼저 PC 환경 구축이다. PC 환경 구축을 위해서는 아래 프로그램 설치 및 환경 변수(PATH) 설정이 필요하다. 1) Java JDK 설치 및 환경 변수 설정 2) Android SDK 설치 및 환경 변수 설정 3..

Python/Do Something 2023.01.16

python - JSON 파일 가공하여 DB에 넣기넣기

어떤 서버에 접속해서 API Request로 정보(JSON 형식)를 긁어온다음에 다시 주기적으로(1분 등) DB에 넣고자 한다. curl을 통해서 Request를 날릴 예정인데 그냥 JSON 형식을 가공하는것만 봐도 좋을 듯 하다. ​ 우선 curl로 request를 날리면 아래와 같이 response 가 온다고 가정한다. 복잡하다.. JSON 형식인데 어떤 형태인지 정리가 안된다. 이럴떄는 JSON 형식을 알아보기 쉽게 변환해보자. 변환할떄는 구글에 'JSON 형식 변환' 이런식으로 검색하면 많이 나온다. 우선 아래 링크를 통해서 변환하고자 한다. http://json.parser.online.fr/ ​ ㅇ 변환전은 아래처럼 복잡하다. {"performances":[{"performance_metric..

Python/Do Something 2023.01.16

python - PC(Server ~ Client) 간 주기적인 파일 전송(Socket)

이전편에서 PC(server~client)간 파일 전송하는 것을 만들어보았는데 파일을 한번만 전송하면 종료되었다.. 이번에는 thread를 이용해서 주기적으로 파일을 전송하고자 한다. 결론적으로는 client PC는 설정된 시간마다 주기적으로 server PC에 있는 장비 리스트를 가져온 후, 해당 장비 리스트에 대해 ping test를 진행하고 결과값을 다시 Server PC로 보내주고자 한다. 혹시 원본파일이 필요하면 쪽지나 댓글 주세요^^ ​ 우선 서버쪽부터 살펴보도록 한다. import time import socket import threading import os from os.path import exists print("SERVER(10)") def run_server1(port, dire..

Python/Do Something 2023.01.16

python - PC(Server ~ Client)간 파일 전송 (Socket)

파이썬으로 PC간에 파일 전송을 하는 프로그램을 만들어서 Client에서 Server로 파일을 보내고, 받고 다 해보고 싶다. ​ 고민한 방법은 몇 가지가 있다.. ​ 1. 그 중에서 가장 쉬워 보이는 방법으로 Server용으로 사용할 PC에 FTP 설정을 해놓고 Client PC에서 파이썬의 ftplib 모듈을 이용해서 FTP접속 및 파일 GET, PUT 등을 하는 방법? ​ 2. 1번과 유사한데 FTP Server 설정까지 파이썬으로 구동 하는 방법? 이 있다. 구글링 해보니 pyftpdlib를 쓰면 되는 것 같은데 이것도 천천히 확인해 봐야겠다. 좀 더 보니 이런것도 있네? 뭔 내용인지는 천천히 살펴 봐야겠다.. ​ 3. 마지막으로는 socket 통신을 이용한 방법이다. socket에 대한 설명은 ..

Python/Do Something 2023.01.16

python - ping test 후 결과를 txt 파일로 저장하고, mysql DB에 저장하기 (ping3, pymysql)

이전에 ping test 결과를 txt 파일로 저장하는 것을 진행했었고, txt 파일을 mysql에 INSERT 하는 것을 진행했었따. 그럼 한개의 파이썬 파일로 ping test 결과를 txt 파일로 저장도 하고, mysql에 INSERT 하려면 어떻게 해야 할까? 1. test 하고자 하는 IP들이 저장된 txt 파일(system_list.txt)을 준비 2. system_list.txt 파일에 있는 IP list에 따라 ping test 결과를 확인하고 ping_result.txt 파일로 저장 3. 저장된 ping_result.txt 파일을 mysql DB에 저장 ​ 사실, 해당 작업을 진행하면서 많은 시행착오가 있었는데 해당 내용도 최대한 기록해보고자 한다. 내용이 이해가 가지 않는다면 이전 글을..

Python/Do Something 2023.01.16