본문 바로가기

Study/Jenkins7

Master Jenkins와 Mac Node로 테스트 자동화 환경 통합하기 * 이 글은 2025년 10월에 Medium에 작성된 내용입니다. 제 블로그에도 기제하기 위해서 동일한 내용을 가져온것 입니다. 앞으로도 이런 글들은 계속됩니다. 안녕하세요! 29CM QA팀 Lead 박현준입니다.이번에는 저희 팀이 진행했던 자동화 퍼포먼스 향상을 위한 구조적 개선에 관한 이야기를 해보려고 합니다.29CM QA팀은 과거 Mac Mini 1대로 테스트 자동화 환경을 구축하여 iOS 1대, Android 1대로 자동화를 시작했습니다.하지만 자동화 시나리오와 부가 기능이 점차 확장되면서 프레임워크의 규모가 커졌고, 수행할 시나리오가 늘어나며 전체 테스트 시간이 길어졌습니다.29CM QA팀은 테스트 자동화 수행은 20분 이내에 완료한다는 팀내 기준이 있었기에 수행시간 감소를 위한 환경 개선이.. 2025. 10. 29.
Jenkins JSONObject["scm"] is not a JSONObject 에러 해결하기 jenkins 업데이트가 된 이후로 slack notification plugin을 수정하려고 하면 위와 같은 에러가 발생했습니다. JSONObject["scm"] is not a JSONObject 사실 이런 문제가 생길까봐 툴 업데이트는 최대한 안하는 편인데 어째서인지 Jenkins가 자동 업데이트 되어있었습니다 ㅜㅜ 어쨌든 문제는 발생했으니 해결을 해야 했습니다. Slack Notification은 소중하기 때문이죠. 찾아보니 2023년 10월에 동일한 문제를 리포트한 분이 있었습니다. 역시 ChatGPT 보다 근본인 구글링의 승리인 순간 Loading... Hello, After updating Jenkins from 2.425 to 2.426 I am not able to Save/Apply c.. 2024. 3. 20.
Jenkins Pipeline Parallel 실행 하기 (젠킨스 파이프라인 병렬 실행) 테스트 자동화 병렬 이야기를 지난 포스팅에 했었어서 실제로 어떻게 사용하는지 이야기를 해보려고 합니다. 물론 초기 스크립트는 ChatGPT가 자세히 알려주어 참고했습니다~ 대략적인 구조는 이렇습니다. pipeline ㄴ stages ㄴ stage ㄴ parallel ㄴ stage ㄴ steps ㄴ stage ㄴ steps jenkins parameter를 쓸 때에는 ' ' 나 " "로 묶는 것이 아니라 """ """로 해줘야 인식이 되기에 jenkins parameter를 넣는 부분은 """ """로 되어있습니다. dir( ) { } 부분은 ( ) 위치로 가서 { } 을 실행하라는 내용입니다. post에 slacksend부분은 slack notification 플러그인이 설치되어있어야 사용할 수 있습니다.. 2023. 9. 8.
jq를 사용해서 JSON 값 변경하기 Jenkins를 사용하다 보면 해당 job을 돌리기 전에 JSON값을 수정해야 하는 상황이 생길 수 있습니다. 이럴때 jq 를 사용하여 간단하게 할 수 있는데요 기본 내장 기능이 아니기 때문에 설치가 필요합니다.brew install jq 설치 완료 후 변경할 JSON파일 이름과 변경할 대상 key, 그리고 변경할 value가 정해지면 아래의 양식으로 작성합니다.jq ‘.values |= map(if .key == “{대상 key 명}” then .value = {변경할 값} . end)’ {변경할 json파일} > temp.json && mv temp.json {변경할 json파일} 변경할 JSON파일 이름이 user_info.json 변경할 대상 key가 user_token 변경할 value가 bla.. 2023. 6. 23.
jenkins pipeline 결과 fail일 때 멈추지 않고 실행되도록 처리하기 & fail 이면 멈추기 이전 회사에서 전 구간 자동화를 설정했었던 jenkins로 지금 회사에서도 전 구간 자동화를 설정했습니다. 앱 다운 -> 기기 설치 된 앱 삭제 -> 다운 받은 앱 설치 -> 자동화 코드 실행 그리고 각 단계마다 예외처리를 다르게 설정해줘야 하는 구간이 있습니다. - 앱 다운 - 다운 받은 앱 설치 - 자동화 코드 실행 은 해당 파이프라인의 전체 결과와 밀접한 관계를 가지고 있었지만, 기기 설치 된 앱 삭제 부분은 조금 달랐습니다. 해당 파이프라인이 진행될 때 기기에 설치할 앱이 있을수도 있고 없을 수도 있었기 때문이죠. 그래서 해당 부분만 실패해도 파이프라인 진행은 되지만, 결과는 실패로 찍히도록 처리를 했습니다. try catch 부분에 catch에 catchError 구문을 추가해주시면 되며 해당 .. 2022. 3. 2.
Jenkins 원격 빌드 하기 - cURL 사용해보기 하나의 Jenkins 내에서 다른 Job을 이어서 진행하게 하는 방법은 빌드 후 조치에서 다른 빌드 실행으로 간단하게 할 수 있지만 다른 Jenkins의 Job을 실행할 때는 방법이 조금 다릅니다. 이 때는 원격빌드 (리모트 빌드) 를 해야 하는데요 이번에는 이 방법을 알아보겠습니다. A Jenkins에서 B Jenkins의 'RUNNING_JOB' 이라는 이름의 Job을 실행한다고 가정하겠습니다. 일단 첫번째로 B Jenkin의 RUNNING_JOB 화면 구성으로 이동하여 빌드 유발 부분의 '빌드를 원격으로 유발' 을 체크합시다. 그리고 Authentication Token을 임의의 문자로 입력해주세요. 저는 AppDownload로 하겠습니다. 그리고 계속해서 B Jenkins의 홈 화면으로 이동한 뒤.. 2021. 5. 20.