3. Jython
• Java 플랫폼을 위한 Python
• Java 바이트코드에 대한 정적 컴파일 및 동적 컴파일
• Java 클래스를 Jython에서 확장 가능
• Java의 설계에 부합하는 완전한 객체 지향 프로그래밍을 지원
• Python 언어 및 그 레퍼런스 구현인 CPython을 따름
• Jython 2.7은 CPython 2.7에 대응
4. Python & Jython
Python 2.7
• C
• Multi-platform
• .pyc로 컴파일
• C 확장
• GIL
• Python 가비지 컬렉션(참조 횟수 세기)
Jython 2.7
• Java(Java Native Runtime for C 사용)
• Java 7 또는 8
• $py.class 파일로 컴파일
• JFFI를 사용하여 Java 또는 C 확장
• 완전한 멀티 쓰레드
• Java 가비지 컬렉션 또는 Python 2.7
과 같은 GC API도 제공
https://wiki.python.org/jython/WhyJython
6. Jython 2.7 – 추가적 지원
• six – 단일 소스 코드로 Python 2와 3 지원
• socket/select/ssl, requests
• pip, setuptools
• 실행 가능한 zip 아카이브
• 지역화된 플랫폼, CJK 인코딩
https://speakerdeck.com/wolevertest/jim-baker-getting-to-jython-2-dot-7-and-beyond?slide=50
7. Jython 적용 사례 – WLST
• Oracle WebLogic: Java EE 표준 준수 웹 애플리케이션 서버
• WLST(WebLogic Scripting Tool):
WebLogic 서버 인스턴스와 도메인을 관리하는 명령행 스크립팅 인터페이스
from weblogic.management.security.authentication import GroupEditorMBean
user = "my_user"
print "Checking if "+user+ " is a Member of a group ... "
atnr=cmo.getSecurityConfiguration().getDefaultRealm().lookupAuthenticationProvider("DefaultAuthenticator")
if atnr.isMember('Administrators',user,true) == 0:
print user+ " is not member of Administrators"
else:
print user+ " is a member of Administrators"
Example 6-8 Verifying Whether a User is a Member of a Group
https://docs.oracle.com/cd/E29542_01/web.1111/e13715/config_wls.htm#WLSTG210
8. Jython 적용 사례 – HP Universal CMDB
• CMDB(Configuration Management
Database, 구성관리 데이터베이스)
• 변경, 릴리스, 인시던트, 서비스 요청, 문제점,
구성 관리 프로세스에 사용할 구성 품목(CI)
에 대한 정보를 저장하는 데이터베이스
• IT 프로세스들이 정확성 및 일관성을 유지할
수 있도록 단일 정보소스를 제공
• HP Universal CMDB는 Jython을 이용하여
CI를 갱신할 수 있도록 adapter를 제공
http://dade.co.za/2015/06/17/example-script-to-update-a-ci-in-hp-ucmdb-using-python-and-suds/
9. Jython 적용 사례 – nGrinder
• 네이버의 성능 테스트 도구
• http://deview.kr/2013/detail.nhn?topicSeq=2
23. AutoHotKey vs. Selenium vs. SikuliX
• AutoHotKey
• 스크립팅 언어를 통해 Windows 매크로 생성과 실행을 자동화
• 핫 키, 클립보드 접근, 데이터 입력 양식 GUI 생성, 정규 표현식
• DLL 호출, 윈도우 메시지
• Selenium
• 브라우저 자동화, 웹 애플리케이션 테스트
• WebDriver: 브라우저 기반 테스트, Java로 작성, 여러 환경에 배포
• IDE: 버그 재현, 파이어폭스 애드온
• Sikuli
• 스크린 캡처를 이용
• Jython 기반
24. Sikuli with Selenium & AHK
• Selenium에서 Sikuli 사용
https://youtu.be/i6oGa9xU_VY
• Sikuli 스크립트를 실행시키는 Autohotkey 스크립트
http://ahkscript.org/forum/viewtopic.php?t=76601&sid=50962
73991c2722bc17580b36133ace4
25. SikuliX 다운로드와 설치, 실행
• http://www.sikulix.com/download.html
• SikuliX 1.1.0 설치 파일 다운로드 (sikulixsetup....jar)
• 설치에 사용할 폴더를 생성하고, 설치 파일(jar)을 이동
• CMD에서 설치 실행
> java -jar sikulixsetup-1.1.0-…-forsetup.jar
• 설치 옵션 지정하고 진행
• runsikulix.cmd 실행하여 SikuliX 시작