Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- javascript 자동완성
- recursion example
- bfs 미로탐색 java
- js 자동완성
- 재귀함수 예제
- katalon 비교
- tomcat log
- 최대공약수 예제
- 테스트 자동화
- 해외주식 양도세 신고
- 피보나치함수 예제
- 한국투자증권 양도세 신고
- 피보나치함수
- oracle group by
- 한국투자증권 해외주식 양도세
- 톰캣 실시간 로그
- 주식 양도세 신고방법
- git 연동
- 해외증권 양도세 한국투자증권
- java.sql.SQLSyntaxErrorException
- katalon
- CSTS 폭포수 모델
- 재귀 예제
- katalon 사용법
- katalon 자동화
- 피보나치 예제
- 국세청 해외주식 양도세 신고방식
- katalon xpath
- Katalon Recorder 사용법
- 홈택스 해외주식 양도세
Archives
- Today
- Total
엄지월드
[katalon] Jenkins Integration하기 본문
jenkins pipleline 코드입니다.
jenkins를 활용해서 원격으로 실행시키거나 형상관리할 때 효율적으로 사용할 수 있겠죠?
import hudson.tasks.test.AbstractTestResultAction
import hudson.model.Actionable
def pipeName = "${JOB_NAME}"
node {
def Test_Env = ""
def jobname = "${env.JOB_NAME}"
def katalon_HOME = "D:\\Katalon_Studio_Engine_Windows_64-7.5.1"
def katalon_PJT = "$WORKSPACE" + "\\insight_automation_test.prj"
def katalon_Testsuite = "Test Suites/Screening/AD_610_001_Result_PT_TopMenu1"
def katalon_Key = "KATALON_API_KEY"
// def katalon_cmd = "$katalon_HOME" + "\\katalonc -noSplash -runMode=console -projectPath=\"" + "$katalon_PJT" + "\" -retry=0 -testSuiteCollectionPath=\"" + "$katalon_Testsuite" + "\" -apiKey=" + "$katalon_Key"
def katalon_cmd = "$katalon_HOME" + "\\katalonc -noSplash -runMode=console -projectPath=\"" + "$katalon_PJT" + "\" -retry=0 -testSuitePath=\""+"$katalon_Testsuite" + "\" -executionProfile=\"Production_ejy\" -browserType=\"Chrome\" -apiKey=" + "$katalon_Key"
def junit_report_path = "Reports/**/JUnit_Report.xml"
def report_url_format = "http://localhost:8080/jenkins/job/job_name/test_results_analyzer/"
def report_url = report_url_format.replaceAll(/job_name/, "${jobname}")
if (jobname ==~ /.*QA.*/) {
Test_Env = "QA"
}
else if (jobname ==~ /.*ST.*/) {
Test_Env = "Staging"
}
else if (jobname ==~ /.*Prod.*/) {
Test_Env = "Production"
}
else {
Test_Env = "test"
}
def subject = "Test Environment : ${Test_Env}"
try {
stage('Prepare Tests'){
// 빌드 중 중단될 경우 프로세스가 남아있어 workspace 삭제가 안됨. 남아있는 프로세스를 강제로 종료하도록 함.
// java 프로세스 확인 > 있으면 kill
ProcessINFO = bat(label: 'get pid', returnStdout: true, script:"@tasklist /FI \"ImageName eq java.exe\" /FI \"WindowTitle ne Tomcat\" /FO LIST")
if (ProcessINFO =~ "정보: 실행 중인 작업 중 지정된 조건에 일치하는 작업이 없습니다.")
{
println "Java process does not exist"
}
else
{
Plist = ProcessINFO.readLines()
PID = Plist[2].replace("PID:", "")
PID = PID.replaceAll("\\s", "")
println "PID: " + "${PID}" +"\n"
bat "taskkill /F /pid ${PID}"
}
// katalon 프로세스 확인 > 있으면 kill
//bat "taskkill /F /FI \"imagename eq katalon.exe\""
// chrome 프로세스 확인 > 있으면 kill
//bat "taskkill /F /FI \"imagename eq chrome.exe\""
// chromedriver 프로세스 확인 > 있으면 kill
//bat "taskkill /F /FI \"imagename eq chromedriver.exe\""
sleep(time:10,unit:"SECONDS")
// workspace clean
cleanWs()
}
}catch (e) {
error "Prepare Fail"
}
try {
stage('Source Checkout'){
// credentialsId는 Jenkins에서 발급
git branch: 'master', credentialsId: 'ejy1024', url: 'https://test@bitbucket.org/test/insight_automation.git'
}
}catch (e) {
error "Checkout Fail"
}
try {
stage('Run Tests'){
bat "${katalon_cmd}"
}
}catch (e) {
if (currentBuild.result == 'FAILURE') {
error "Abort Test"
}
}
try {
stage('Generate Report'){
junit "${junit_report_path}"
}
}catch (e) {
error "Generate report Fail"
}
}
Jenkins를 원격으로 실행하는것도 좋은데, 결과를 Mattermost로 받아보고 싶다면?!
Katalon&Mattermost&Bitbucket&Jenkins Integration
'QA > TestOps' 카테고리의 다른 글
jenkins 원격 빌드 (0) | 2021.03.25 |
---|---|
Jenkins 업데이트 방법 (0) | 2020.07.10 |
Katalon&Mattermost&Bitbucket&Jenkins Integration 하기 (0) | 2020.05.28 |
jenkins를 통해 Katalon Runtime Engine실행 방법 (0) | 2020.05.27 |
Comments