[Jenkins]腳本以及壓力測試部分研究
[Jenkins 腳本第一階段設定內容記錄]
目前實行結果:
串接github上傳專案,存放至Jenkins目錄下進行測試腳本,並開發兩種類型unit test(成功+失敗)與施行建置產生測試report紀錄
[目前Console Output內容]
-----
----
[結果記錄檔]
1.
2.
3.
4.
5.
[專案組態內容]
專案名稱:專案 MyJenkinsRepo
[建置觸發程序]+[建置環境]+[建置]
*Build a visual studio project or solution using MSBuild
路徑填寫時,請填寫Jenkins的workspace目錄下的專案目錄路徑
如果出現error時,可以參考console log 顯示的錯誤訊息,並剪貼錯誤的路徑位置,直接貼在瀏覽器內檢視檔案,就可以知道是否正確。
[MSBuild Build File]:
C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo.sln
*Run unit tests with VSTest.console
*Run unit tests with MSTest
[Test File]:
C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\UnitTestJenkinsProject1\bin\Release\UnitTestJenkinsProject1.dll
[建置後動作]
[Global Tool Configuration]
[MSBuild]
1. Path of MSBuild :
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
[MSTest]
Path of MSTest :
D:\Visual Studio\Common7\IDE\MSTest.exe
[VSTest]
Path of VSTest:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe
[test report]: 來自unit test .sln
C:\temp\log\2019-01-23\debug.log
[透過 jenkins 進行壓測]
為了發現程序是否有嚴重的性能問題與原因,檢證程序是否可正常營運與極限
舉例:SQL語句的性能
1. 壓測數值項目:
a. 系統內存
b. CPU內存與使用歷程
c. 磁盤I/O負荷量:可承受的最大量的數值
d. 指標:
2.
2.
3.
4.
5.
目前實行結果:
串接github上傳專案,存放至Jenkins目錄下進行測試腳本,並開發兩種類型unit test(成功+失敗)與施行建置產生測試report紀錄
[目前Console Output內容]
終端機輸出
admin 啟動 建置中 工作區 C:\Jenkins2-150-1\workspace\MyJenkinsRepo > git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url https://github.com/Ya-wenWu/MyJenkinsRepo.git # timeout=10 Fetching upstream changes from https://github.com/Ya-wenWu/MyJenkinsRepo.git > git --version # timeout=10 > git fetch --tags --progress https://github.com/Ya-wenWu/MyJenkinsRepo.git +refs/heads/*:refs/remotes/origin/* > git rev-parse "refs/remotes/origin/master^{commit}" # timeout=10 > git rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10 Checking out Revision b32ed175d91c098b5544363e6788ddcbe1fcc880 (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f b32ed175d91c098b5544363e6788ddcbe1fcc880 Commit message: "加入unitest -1" > git rev-list --no-walk b32ed175d91c098b5544363e6788ddcbe1fcc880 # timeout=10 Path To MSBuild.exe: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild.exe Executing the command cmd.exe /C " "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild.exe" C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo.sln " && exit %%ERRORLEVEL%% from C:\Jenkins2-150-1\workspace\MyJenkinsRepo [MyJenkinsRepo] $ cmd.exe /C " "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild.exe" C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo.sln " && exit %%ERRORLEVEL%% Microsoft (R) Build Engine for .NET Framework 15.9.21+g9802d43bc3 版 Copyright (C) Microsoft Corporation. 著作權所有,並保留一切權利。 在此解決方案中一次建置一個專案。若要啟用平行建置,請新增 "/m" 參數。 已經開始建置於 2019/1/23 下午 08:47:22。 節點 1 (預設目標) 上的專案 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo.sln"。 ValidateSolutionConfiguration: 建置方案組態 "Debug|Any CPU"。 專案 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo.sln" (1) 正在節點 1 (預設目標) 上建置 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo.csproj" (2)。 GenerateTargetFrameworkMonikerAttribute: 將略過目標 "GenerateTargetFrameworkMonikerAttribute",因為所有輸出檔對於其輸入檔而言都已更新。 CoreCompile: 將略過目標 "CoreCompile",因為所有輸出檔對於其輸入檔而言都已更新。 _CopyAppConfigFile: 將略過目標 "_CopyAppConfigFile",因為所有輸出檔對於其輸入檔而言都已更新。 CopyFilesToOutputDirectory: MyJenkinsRepo -> C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo\bin\Debug\MyJenkinsRepo.exe 專案 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo.csproj" (預設目標) 建置完成。 專案 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo.sln" (1) 正在節點 1 (預設目標) 上建置 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepoTry\MyJenkinsRepoTry.csproj" (3)。 GenerateTargetFrameworkMonikerAttribute: 將略過目標 "GenerateTargetFrameworkMonikerAttribute",因為所有輸出檔對於其輸入檔而言都已更新。 CoreCompile: 將略過目標 "CoreCompile",因為所有輸出檔對於其輸入檔而言都已更新。 _CopyFilesMarkedCopyLocal: 正在變更時間戳記 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepoTry\obj\Debug\MyJenkinsRepoTry.csproj.CopyComplete"。 _CopyAppConfigFile: 將略過目標 "_CopyAppConfigFile",因為所有輸出檔對於其輸入檔而言都已更新。 CopyFilesToOutputDirectory: MyJenkinsRepoTry -> C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepoTry\bin\MyJenkinsRepoTry.dll 專案 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepoTry\MyJenkinsRepoTry.csproj" (預設目標) 建置完成。 專案 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo.sln" (1) 正在節點 1 (預設目標) 上建置 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepoTry.Tests\MyJenkinsRepoTry.Tests.csproj" (4)。 GenerateTargetFrameworkMonikerAttribute: 將略過目標 "GenerateTargetFrameworkMonikerAttribute",因為所有輸出檔對於其輸入檔而言都已更新。 CoreCompile: 將略過目標 "CoreCompile",因為所有輸出檔對於其輸入檔而言都已更新。 _CopyFilesMarkedCopyLocal: 正在變更時間戳記 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepoTry.Tests\obj\Debug\MyJenkinsRepoTry.Tests.csproj.CopyComplete"。 _CopyOutOfDateSourceItemsToOutputDirectory: 將略過目標 "_CopyOutOfDateSourceItemsToOutputDirectory",因為所有輸出檔對於其輸入檔而言都已更新。 _CopyAppConfigFile: 將略過目標 "_CopyAppConfigFile",因為所有輸出檔對於其輸入檔而言都已更新。 CopyFilesToOutputDirectory: MyJenkinsRepoTry.Tests -> C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepoTry.Tests\bin\Debug\MyJenkinsRepoTry.Tests.dll 專案 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepoTry.Tests\MyJenkinsRepoTry.Tests.csproj" (預設目標) 建置完成。 專案 "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo.sln" (預設目標) 建置完成。 建置成功。 0 個警告 0 個錯誤 經過時間 00:00:01.98 Path To VSTest.console.exe: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe Executing VSTest: cmd.exe /C C:\WINDOWS\TEMP\vstest6023345477534319490.bat && exit %ERRORLEVEL% [MyJenkinsRepo] $ cmd.exe /C C:\WINDOWS\TEMP\vstest6023345477534319490.bat && exit %ERRORLEVEL% C:\Jenkins2-150-1\workspace\MyJenkinsRepo>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\UnitTestJenkinsProject1\bin\Release\UnitTestJenkinsProject1.dll" /Enablecodecoverage /UseVsixExtensions:false /Logger:trx Microsoft (R) Test Execution Command Line Tool 15.9.0 版 Copyright (C) Microsoft Corporation. 著作權所有,並保留一切權利。 /UseVsixExtensions 即將淘汰。請改用 /TestAdapterPath。 正在啟動測試執行,請稍候... 2.1933 資料收集器 'Code Coverage' 的訊息: Cannot find CodeCoverage.exe.。 成功 TestMethod1 成功 LogDebugTest 失敗 LogFatalTest 錯誤訊息: Assert.IsTrue 失敗。 堆疊追蹤: 於 UnitTestJenkinsProject1.UnitTest1.LogFatalTest() 於 D:\SYSCOM\GitJenkinsIIRepo\MyJenkinsRepo\MyJenkinsRepo1\UnitTestJenkinsProject1\UnitTest1.cs: 行 31 結果檔案: C:\Jenkins2-150-1\workspace\MyJenkinsRepo\TestResults\LAPTOP-YW$_LAPTOP-YW_2019-01-23_20_47_28.trx 測試總計: 3。成功: 2。失敗: 1。略過: 0。 測試回合失敗。 測試執行時間: 2.2885 秒 Build step 'Run unit tests with VSTest.console' marked build as failure [MSTEST-PLUGIN] INFO processing test results in file(s) **/*.trx [MSTEST-PLUGIN] INFO processing report file: C:\Jenkins2-150-1\workspace\MyJenkinsRepo\TestResults\LAPTOP-YW$_LAPTOP-YW_2019-01-23_20_35_58.trx [MSTEST-PLUGIN] WARNING Unable to delete the file C:\Jenkins2-150-1\workspace\MyJenkinsRepo\temporary-junit-reports [MSTEST-PLUGIN] INFO This file is a reserved temporary file. You can delete it safely. [MSTEST-PLUGIN] INFO XML coverage report file not found: C:\Jenkins2-150-1\workspace\MyJenkinsRepo\TestResults\vstest.coveragexml [MSTEST-PLUGIN] INFO XML coverage report file not found: C:\Jenkins2-150-1\workspace\MyJenkinsRepo\TestResults\LAPTOP-YW$_LAPTOP-YW_2019-01-23_20_35_58.coveragexml [MSTEST-PLUGIN] INFO processing report file: C:\Jenkins2-150-1\workspace\MyJenkinsRepo\TestResults\LAPTOP-YW$_LAPTOP-YW_2019-01-23_20_47_28.trx [MSTEST-PLUGIN] WARNING Unable to delete the file C:\Jenkins2-150-1\workspace\MyJenkinsRepo\temporary-junit-reports [MSTEST-PLUGIN] INFO This file is a reserved temporary file. You can delete it safely. [MSTEST-PLUGIN] INFO XML coverage report file not found: C:\Jenkins2-150-1\workspace\MyJenkinsRepo\TestResults\vstest.coveragexml [MSTEST-PLUGIN] INFO XML coverage report file not found: C:\Jenkins2-150-1\workspace\MyJenkinsRepo\TestResults\LAPTOP-YW$_LAPTOP-YW_2019-01-23_20_47_28.coveragexml Finished: FAILURE由使用者
-----
建構 #47 (2019/1/23 下午 08:47:19)
No changes. | |
由使用者 admin 啟動
| |
Revision: b32ed175d91c098b5544363e6788ddcbe1fcc880
| |
測試結果 (2 項失敗 / +1) |
----
[結果記錄檔]
1.
2.
3.
4.
5.
[專案組態內容]
專案名稱:專案 MyJenkinsRepo
[建置觸發程序]+[建置環境]+[建置]
*Build a visual studio project or solution using MSBuild
路徑填寫時,請填寫Jenkins的workspace目錄下的專案目錄路徑
如果出現error時,可以參考console log 顯示的錯誤訊息,並剪貼錯誤的路徑位置,直接貼在瀏覽器內檢視檔案,就可以知道是否正確。
[MSBuild Build File]:
C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\MyJenkinsRepo.sln
*Run unit tests with VSTest.console
*Run unit tests with MSTest
[Test File]:
C:\Jenkins2-150-1\workspace\MyJenkinsRepo\MyJenkinsRepo\UnitTestJenkinsProject1\bin\Release\UnitTestJenkinsProject1.dll
[建置後動作]
[Global Tool Configuration]
1. Path of MSBuild :
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
[MSTest]
Path of MSTest :
D:\Visual Studio\Common7\IDE\MSTest.exe
[VSTest]
Path of VSTest:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe
[test report]: 來自unit test .sln
C:\temp\log\2019-01-23\debug.log
[透過 jenkins 進行壓測]
為了發現程序是否有嚴重的性能問題與原因,檢證程序是否可正常營運與極限
舉例:SQL語句的性能
1. 壓測數值項目:
a. 系統內存
b. CPU內存與使用歷程
c. 磁盤I/O負荷量:可承受的最大量的數值
d. 指標:
2.
2.
3.
4.
5.
留言
張貼留言