Programming 35

스크립트를 이용한 Manifest 자동 생성 (Shell+Python)

매번 bugfix와 새로운 feature 개발할 때, manifest 파일을 만들어서 빌드를 해야하는 번거로움이 있었다. 이를 위해 manifest를 자동으로 생성하는 jenkins job을 만들게 되어 기록해본다. 즉 manifest에서 작업한 repository에 해당하는 라인 뒤에 revision 값을 추가해야 한다. 필요한 매개변수 Base branch : 생성할 manifest의 base 브랜치 Working repositories : 작업한 repository 리스트 (공백으로 받음, 젠킨스에 공백으로 구분할 수 있는 기능이 있음) New branch : 새로 생성 할 브랜치. 즉 working branch에서 작업한 branch명 # Build with Parameters # BASE_BRA..

Programming 2020.01.10

파이썬 Unit Testing Framework

Python unit testing framework파이썬 unit testing 표준 라이브러리인 unittest에 대해 알아보자.JUnit에서 영감을 얻었으며 다른 언어의 주 unit testing framework와 유사하다고 한다. test automation과 setup, shutdown 공유, reporting framework 등을 지원한다.자세히 알아보기전에 몇 가지 중요한 용어는 다음과 같다.test fixture : 테스트 수행하는데 필요한 준비 및 정리 작업을 지원함 (temporary or proxy databases, directories 등)test case : 테스트를 수행하고자 하는 각각의 unit test casetest suite : test case의 모음, 여러 tes..

Programming/Python 2019.12.31

파이썬 셀레니움(Selenium)으로 테스트 자동화

Selenium웹 기반 솔루션을 만들고 있는데, 이를 테스트 자동화하기 위해 Selenium을 사용했다. 우선 Selenium이 무엇인지부터 알아보자.Selenium : Selenium is a portable framework for testing web applications. Selenium provides a playback tool for authoring functional tests without the need to learn a test scripting language (Selenium IDE). It also provides a test domain-specific language (Selenese) to write tests in a number of popular programmi..

Programming/Python 2019.12.29

파이썬 윈도우 자동화 - pywinauto

윈도우 GUI 자동화 라이브러리 pywinauto 패키지 설치 $ pip install pywinauto 소스코드 from pywinauto import Application, Desktop os.system( "TASKKILL /F /IM 실행파일.exe" ) dlg = Desktop( backend ="win32" ).window( title = "타이틀명" ) dlg.wait('ready', timeout=20) dlg.set_focus() dlg.Next.Click() 이 패키지를 통해서 윈도우에서 여러가지 자동화 프로그램을 만들 수 있을듯 매크로를 만들거나 윈도우 프로그램 테스트 자동화하기 위해 사용함 https://pywinauto.readthedocs.io/en/latest/

Programming/Python 2018.07.18

개발할때 수정한 함수명 추출 (Git diff)

개발자가 수정한 함수명을 추출하기 위해 사용했던 방법에 대해 기록해본다. (더 효율적인 방법이 있을 것 같지만..) 사용한 방법 $ git diff HEAD HEAD~ | grep -E '^(@@)' | grep "(" | sed 's/@@.*@@//' | sed 's/(.*//' | awk -F " " '' | uniq 세부설명 1. git diff HEAD HEAD~ : 최신 commit과 그 전 commit에 대해 diff 추출 2. grep -E '^(@@)' : @@로 시작하는 부분에 대해 추출 ㄴ 함수명이 포함 된 부분은 @@로 시작되기 때문에.. 3. grep "(" : ( 를 포함하는 부분 추출 ㄴ 함수명이 포함되어 있다면 매개변수가 시작하는 "(" 키워드가 포함되어 있기 때문에.. 4. ..

Programming 2018.06.26