Saya mencoba mengekstrak pengguna yang memicu pekerjaan Jenkins dan status eksekusi testNG dari konsol Jenkins.

Perlu mendapatkan detail di bawah ini dari konsol Jenkins menggunakan perintah Linux.

Log konsol Jenkins:

Dimulai oleh pengguna achuMohan

=================================================

TransferUangTes

Tes dijalankan: 10, Lulus: 5 Kegagalan: 3, Loncat: 2

=================================================

Keluaran:

achuMohan
Run:10
Pass:5
Failures:3
Skips: 2

Saya mencoba perintah di bawah ini untuk mendapatkan semua log konsol tetapi tidak yakin bagaimana saya bisa melangkah lebih jauh.

userName=$(curl -u 'user:password' --silent "https://hostname/Dev-CI-MILLENIUM-1924/job/Test_Kindle/$BUILD_NUMBER/logText/progressiveText?start=0")

Pass=$(curl -u 'user:password' --silent "https://hostname/Dev-CI-MILLENIUM-1924/job/Test_Kindle/$BUILD_NUMBER/logText/progressiveText?start=0")

Fail=$(curl -u 'user:password' --silent "https://hostname/Dev-CI-MILLENIUM-1924/job/Test_Kindle/$BUILD_NUMBER/logText/progressiveText?start=0")

skip=$(curl -u 'user:password' --silent "https://hostname/Dev-CI-MILLENIUM-1924/job/Test_Kindle/$BUILD_NUMBER/logText/progressiveText?start=0")

Saya ingin mengambil output di atas dan menyimpannya ke dalam variabel seperti di atas.

Apakah mungkin untuk mengekstrak hanya hal-hal di atas dari seluruh log konsol dengan menggunakan perintah linux cara lain untuk mencapainya?

0
ArrchanaMohan 19 September 2019, 20:52

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan perintah di bawah ini untuk mendapatkan data hasil tes:

curl -u 'user:password' --silent "${JENKINS_URL}/job/${JOB_NAME}/lastBuild/consoleText"| grep "^Tests"| sed "s/Tests //g"| awk -F", " '{ print $1"\n"$2"\n"$3}'

Output dari perintah di atas akan menjadi:

run: 10
Pass: 5
Failures: 3

Untuk nama pengguna Anda dapat menggunakan perintah di bawah ini:

curl -u 'user:password' --silent "${JENKINS_URL}/job/${JOB_NAME}/lastBuild/consoleText" | awk '/Started/{print $NF}'

Ini akan memberikan output sebagai:

achuMohan

Anda dapat memasukkan data ini ke dalam file dan kemudian menggunakan cat untuk mencetaknya di terminal.

0
Pacifist 19 September 2019, 20:20