後臺效能測試——簡例
概述
效能測試 是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項效能指標進行測試。負載測試和壓力測試都屬於效能測試,兩者可以結合進行。通過負載測試,確定在各種工作負載下系統的效能,目標是測試當負載逐漸增加時,系統各項效能指標的變化情況。壓力測試是通過確定一個系統的瓶頸或者不能接受的效能點,來獲得系統能提供的最大服務級別的測試。
外部指標
從外部看,主要關注三個指標
- 吞吐量:每秒鐘系統能夠處理的請求數、任務數。
- 響應時間:服務處理一個請求或一個任務的耗時。
- 錯誤率:某批次請求中失敗或發生錯誤的請求比例。
互相影響關係如下:
響應時間的指標取決於具體的服務返回的資料有效週期,實時性。對於響應時間的統計,應從均值、.90、.99、分佈等多個角度統計,而不僅僅是給出均值。
吞吐量的指標受到響應時間、伺服器軟硬體配置、網路狀態等多方面因素影響。
吞吐量越大,響應時間越長。
伺服器硬體配置越高,吞吐量越大。
網路越差,吞吐量越小。
在低吞吐量下的響應時間的均值、分佈比較穩定,不會產生太大的波動。
在高吞吐量下,響應時間會隨著吞吐量的增長而增長,增長的趨勢可能是線性的,也可能接近指數的。當吞吐量接近系統的峰值時,響應時間會出現激增。
錯誤率和服務的具體實現有關。通常情況下,由於網路超時等外部原因造成的錯誤比例不應超過5%%,由於服務本身導致的錯誤率不應超過1% 。
內部指標
從系統的角度看,效能測試主要關注CPU、記憶體、負載、網路、磁碟IO等
CPU
後臺服務的所有指令和資料處理都是由CPU負責,主要有如下幾個維度的統計指標:
- us:使用者態使用的cpu時間百分比
- sy:系統態使用的cpu時間百分比
- ni:用做nice加權的程序分配的使用者態cpu時間百分比
- id:空閒的cpu時間百分比
- wa:cpu等待IO完成時間百分比
- hi:硬中斷消耗時間百分比
- si:軟中斷消耗時間百分比
us & sy:大部分後臺服務使用的CPU時間片中us和sy的佔用比例是最高的。
同時這兩個指標又是互相影響的,us的比例高了,sy的比例就低,反之亦然。
在使用多核CPU的伺服器上,CPU 0負責CPU各核間的排程,CPU 0上的使用率過高會導致其他CPU核心之間的排程效率變低。因此測試過程中CPU 0需要重點關注。ni:每個Linux程序都有個優先順序,優先順序高的程序有優先執行的權利,這個叫做pri。程序除了優先順序外,還有個優先順序的修正值。這個修正值就叫做程序的nice值。一般來說,被測服務和伺服器整體的ni值不會很高。如果測試過程中ni的值比較高,需要從伺服器Linux系統配置、被測服務執行引數查詢原因。
id:線上服務執行過程中,需要保留一定的id冗餘來應對突發的流量激增。在效能測試過程中,如果id一直很低,吞吐量上不去,需要檢查被測服務執行緒/程序配置、伺服器系統配置等。
wa:磁碟、網路等IO操作會導致CPU的wa指標提高。通常情況下,網路IO佔用的wa資源不會很高,而頻繁的磁碟讀寫會導致wa激增。如果被測服務不是IO密集型的服務,那需要檢查被測服務的日誌量、資料載入頻率等。
hi & si:硬中斷是外設對CPU的中斷,即外圍硬體發給CPU或者記憶體的非同步訊號就是硬中斷訊號;軟中斷由軟體本身發給作業系統核心的中斷訊號。通常是由硬中斷處理程式或程序排程程式對作業系統核心的中斷,也就是系統呼叫(System Call)。在效能測試過程中,hi會有一定的CPU佔用率,但不會太高。對於IO密集型的服務,si的CPU佔用率會高一些。
在非同步框架中,CPU本身是不會被IO阻塞的,主要關注點:
資料處理:
字串操作(嘗試流)
記憶體操作(記憶體池)
資料結構設計(紅黑樹換HASHMAP)併發的處理:
鎖的臨界區減少(僅在必要時加小粒度鎖)
佇列化(無鎖)計算、儲存、網路三者要做到平衡:
合理的將網路、計算的開銷減小,增大儲存的開銷(快取),大部分計算、網路的瓶頸都可以用增大儲存來解決,但要有度。
更合理的排程(docker、雲化)
記憶體
對記憶體監控的主要目的是檢查被測服務所佔用記憶體的波動情況。top命令記憶體相關引數解析如下:
- VIRT:程序所使用的虛擬記憶體的總數。它包括所有的程式碼,資料和共享庫,加上已換出的頁面,所有已申請的總記憶體空間
- RES:程序正在使用的沒有交換的實體記憶體(棧、堆),申請記憶體後該記憶體段已被重新賦值
- SHR:程序使用共享記憶體的總數。該數值只是反映可能與其它程序共享的記憶體,不代表這段記憶體當前正被其他程序使用
- SWAP:程序使用的虛擬記憶體中被換出的大小,交換的是已經申請,但沒有使用的空間,包括(棧、堆、共享記憶體)
- DATA:程序除可執行程式碼以外的實體記憶體總量,即程序棧、堆申請的總空間
測試過程中主要監控RES和VIRT,對於使用了共享記憶體的多程序架構服務,還需要監控SHR。
LOAD(伺服器負載)
系統負載指執行佇列的平均長度,也就是等待CPU的平均程序數
- 從伺服器負載的定義可以看出,伺服器執行最理想的狀態是所有CPU核心的執行佇列都為1,即所有活動程序都在執行,沒有等待。這種狀態下伺服器執行在負載閾值下。
- 通常情況下,按照經驗值,伺服器的負載應位於閾值的70%~80%,這樣既能利用伺服器大部分效能,又留有一定的效能冗餘應對流量增長。
- Linux提供了很多檢視系統負載的命令,最常用的是top和uptime
- top和uptime針對負載的輸出內容相同,都是系統最近1分鐘、5分鐘、15分鐘的負載均值
- 統負載閾值的命令如下
- 在效能測試過程中,系統負載是評價整個系統執行狀況最重要的指標之一。通常情況下,壓力測試時系統負載應接近但不能超過閾值,併發測試時的系統負載最高不能超過閾值的80%,穩定性測試時,系統負載應在閾值的50%左右。
網路
網路監控主要包括網路流量、網路連線狀態的監控。
- 網路流量監控
- 可以使用nethogs命令。該命令與top類似,是一個實時互動的命令。
- 在後臺服務效能測試中,對於返回文字結果的服務,並不需要太多關注在流量方面。
- 網路連線狀態監控
- 效能測試中對網路的監控主要是監控網路連線狀態的變化和異常。對於使用TCP協議的服務,需要監控服務已建立連線的變化情況(即ESTABLISHED狀態的TCP連線)。對於HTTP協議的服務,需要監控被測服務對應程序的網路緩衝區的狀態、TIME_WAIT狀態的連線數等。Linux自帶的很多命令如netstat、ss都支援如上功能。
磁碟IO
如果被測服務對磁碟讀寫過於頻繁,會導致大量請求處於IO等待的狀態。可以用iostat命令來監控磁碟狀態,注意需要加上-x引數, 獲得系統執行有價值的統計資料。
- tps:該裝置每秒的傳輸次數。“一次傳輸”意思是“一次I/O請求”。多個邏輯請求可能會被合併為“一次I/O請求”。“一次傳輸”請求的大小是未知的
- kB_read/s:每秒從裝置(driveexpressed)讀取的資料量,單位為Kilobytes
- kB_wrtn/s:每秒向裝置(driveexpressed)寫入的資料量,單位為Kilobytes
- kB_read:讀取的總資料量,單位為Kilobytes
- kB_wrtn:寫入的總數量資料量,單位為Kilobytes
- rrqm/s:每秒這個裝置相關的讀取請求有多少被Merge了(當系統呼叫需要讀取資料的時候,VFS將請求發到各個FS,如果FS發現不同的讀取請求讀取的是相同Block的資料,FS會將這個請求合併Merge)
- wrqm/s:每秒這個裝置相關的寫入請求有多少被Merge了
- await:每一個IO請求的處理的平均時間(單位是毫秒)
- %util:在統計時間內所有處理IO時間,除以總共統計時間。例如,如果統計間隔1秒,該裝置有0.8秒在處理IO,而0.2秒閒置,那麼該裝置的%util = 0.8/1 = 80%,該引數反映裝置的繁忙程度。
常見效能瓶頸
- 吞吐量到上限時系統負載未到閾值:一般是被測服務分配的系統資源過少導致的。可以從ulimit、系統開啟的執行緒數、分配的記憶體等維度定位問題原因
- CPU的us和sy不高,但wa很高:如果被測服務是磁碟IO密集型型服務,wa高屬於正常現象。但如果不是此類服務,最可能導致wa高的原因有兩個,一是服務對磁碟讀寫的業務邏輯有問題,讀寫頻率過高,寫入資料量過大,如不合理的資料載入策略、log過多等;二是伺服器記憶體不足,服務在swap分割槽不停的喚入喚出。
- 同一請求的響應時間忽大忽小:在正常吞吐量下發生此問題,可能的原因有兩方面,一是服務對資源的加鎖邏輯有問題,導致處理某些請求過程中花了大量的時間等待資源解鎖;二是Linux本身分配給服務的資源有限,某些請求需要等待其他請求釋放資源後才能繼續執行。
- 記憶體持續上漲:在吞吐量固定的前提下,如果記憶體持續上漲,那麼很有可能是被測服務存在明顯的記憶體洩漏,需要使用valgrind等記憶體檢查工具進行定位。
舉例
效能測試的需求背景三種情況:
- 第一種是現網出現效能問題,專案組專門進行了效能改造。比如修改的某個介面,由原來的同步呼叫修改成了非同步,又或者是更換了新的api,由tcp協議修改為udp協議,為了保證新替換的api的可靠性,都需要進行效能測試
- 第二種是一個新做的系統,運營人員需要全面的把脈,瞭解該系統的處理能力。
- 第三種是隨著請求量的快速增長,而該系統卻從未做過效能測試,專案組擔心繫統在可預見的短期會扛不住,所以要求測試人員對該進行全面的效能測試,給出一份參考資料
- 第四種是線上系統發生效能故障,需要對系統性能弱項進行摸底排查
一個完整的後臺服務效能測試流程如下
測試前準備:
系統需求分析:
- 系統所期望的效能指標:現網指標,需求指標
- 組網以及網間各個系統之間的通訊形式:tcp/upd,閘道器,鑑權
- 系統的各個邏輯分支:核心業務邏輯,效能瓶頸業務
- 系統內部模組的組合:業務模組,基礎模組
- 確定性能測試指標
設計效能測試用例:
- 選定最合適的邏輯分支進行測試。
- 設計最有針對性,最有效的測試用例。
- 請教有經驗的效能測試工程師和開發工程師。
測試環境的準備:
- 資料:大資料量以及資料的多樣性往往是模擬的難點。大資料量需要自己寫指令碼將資料庫填充到一定的程度,如果要求高的話,甚至可以採用從現網導資料的方法。多樣性往往比較難以實現,需要了解現網的資料多樣性以及比例,達到模擬的效果
- 網路時延:這個和公司的IDC機器管理很相關.我之前一直以為所有的測試機器都在一個IDC,後來發現其實不然,我們的測試機器也和運營機器一樣,分佈在不同的IDC,而我們在挑選機器部署時,需要先了解一下現網運營機器之間的網路時延。這在測試整個一條邏輯分支的效能時尤為重要。
- 配置:日誌級別的配置,執行緒或程序的個數,如果條件允許,配置可以升級到機器的硬體的配置,如果可以一致自然是最理想的效果。
壓測過程:
使用Jmeter傳送測試資料來模擬使用者請求,效能測試的配置檔案主要由資料檔案配置(執行緒間共享方式、到達末尾時的行為等)、吞吐量控制、HTTP取樣器(域名、埠、HTTP METHOD、請求body等)、響應斷言(對返回結果的內容進行校驗)。
在linux中,sar、top、ps等命令都可以對cpu使用情況進行監控。常用的是top命令。
在效能測試中,可以使用如下引數讓top命令按需執行:
top –n 1 –b –p ${pid}
# top -n 1 -b -p 103
top - 03:50:39 up 2 days, 21:09, 0 users, load average: 0.01, 0.00, 0.00
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.0 sy, 0.0 ni, 99.4 id, 0.4 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 1020668 total, 911792 used, 108876 free, 44280 buffers
KiB Swap: 425980 total, 273768 used, 152212 free. 134372 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
103 root 20 0 20252 2704 2220 S 0.0 0.3 0:00.03 bash
伺服器負載
linux中,伺服器負載使用uptime命令獲取,該命令的輸出如下圖
# uptime
03:49:20 up 2 days, 21:07, 0 users, load average: 0.03, 0.01, 0.00
#每一列的含義如下:
#“當前時間 系統執行時長 登入的使用者數最 近1分鐘、5分鐘、15分鐘的平均負載”
記憶體
準確的記憶體資訊在/proc/${PID}/status中,
# cat /proc/103/status
Name: bash
Umask: 0022
State: S (sleeping)
Tgid: 103
Ngid: 0
Pid: 103
PPid: 0
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 256
Groups:
NStgid: 103
NSpid: 103
NSpgid: 103
NSsid: 103
VmPeak: 20316 kB
VmSize: 20252 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 3328 kB
VmRSS: 2704 kB
RssAnon: 484 kB
RssFile: 2220 kB
RssShmem: 0 kB
VmData: 408 kB
VmStk: 132 kB
VmExe: 968 kB
VmLib: 2312 kB
VmPTE: 56 kB
VmPMD: 12 kB
VmSwap: 0 kB
HugetlbPages: 0 kB
Threads: 1
SigQ: 0/3950
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000010000
SigIgn: 0000000000380004
SigCgt: 000000004b817efb
CapInh: 00000000a80425fb
CapPrm: 00000000a80425fb
CapEff: 00000000a80425fb
CapBnd: 00000000a80425fb
CapAmb: 0000000000000000
NoNewPrivs: 0
Seccomp: 2
Cpus_allowed: 1
Cpus_allowed_list: 0
Mems_allowed: 00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 455
nonvoluntary_ctxt_switches: 419
#上面命令的輸出中,關注VmRSS、VmData、VmSize
磁碟IO
使用vmstat、iostat 前需要現安裝sysstat,請使用各版本linux 安裝包管理工具安裝比如,yum,zypper,pacman,apt-get 等
+ 使用vmstat獲取核心執行緒、虛擬記憶體、磁碟、陷阱和 CPU 活動的統計資訊
# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 1 271424 92604 51196 193000 1 2 5 16 63 24 0 0 99 0 0
#Free – 空閒的記憶體空間
#si – 每秒從磁碟中交換進記憶體的資料量(以KB為單位)。
#so – 每秒從記憶體中交換出磁碟的資料量(以KB為單位)。
##帶時間戳,每隔2秒執行一次,執行6次後結束
vmstat -t 2 6
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp-----
r b swpd free buff cache si so bi bo in cs us sy id wa st UTC
1 0 271424 92604 51232 193008 1 2 5 16 63 24 0 0 99 0 0 2017-09-24 06:20:51
0 0 271424 92604 51232 193008 0 0 0 0 60 191 0 0 100 0 0 2017-09-24 06:20:53
0 0 271404 92480 51232 193008 16 0 16 0 65 197 0 0 97 3 0 2017-09-24 06:20:55
0 0 271404 92480 51232 193008 0 0 0 0 63 181 0 0 100 0 0 2017-09-24 06:20:57
0 0 271404 92480 51232 193008 0 0 0 0 65 192 0 0 100 0 0 2017-09-24 06:20:59
0 0 271404 92480 51232 193008 0 0 0 0 62 186 0 0 100 0 0 2017-09-24 06:21:01
##輸出各種事件計數器和記憶體的統計資訊
# vmstat -s
1020668 K total memory
683832 K used memory
495484 K active memory
354372 K inactive memory
92604 K free memory
51224 K buffer memory
193008 K swap cache
425980 K total swap
271424 K used swap
154556 K free swap
36452 non-nice user cpu ticks
71 nice user cpu ticks
8353 system cpu ticks
25502475 idle cpu ticks
104763 IO-wait cpu ticks
0 IRQ cpu ticks
760 softirq cpu ticks
0 stolen cpu ticks
1372817 pages paged in
4017580 pages paged out
43118 pages swapped in
115463 pages swapped out
16161596 interrupts
49031514 CPU context switches
1505976095 boot time
5028 forks
##更多命令可以參照:https://www.thomas-krenn.com/en/wiki/Linux_Performance_Measurements_using_vmstat
- iostat命令獲取CPU統計資訊,裝置和分割槽的輸入/輸出統計資訊。
iiostat -x
Linux 4.12.4-1-ARCH (Arch) 09/24/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.14 0.00 0.04 0.41 0.00 99.42
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.13 0.73 0.23 0.37 5.31 15.55 70.05 0.01 17.78 10.61 22.14 7.38 0.44
##只輸出cpu統計資訊
iostat -c
Linux 4.12.4-1-ARCH (Arch) 09/24/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.14 0.00 0.04 0.41 0.00 99.41
##只輸出磁碟的輸入輸出統計資訊
iostat -d
Linux 4.12.4-1-ARCH (Arch) 09/24/2017 _x86_64_ (1 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.60 5.33 15.61 1373061 4018260
##更多引數和方法可以參考:https://linux.die.net/man/1/iostat
網路
請使用各版本linux 安裝包管理工具安裝比如,yum install,zypper install,pacman -S,apt-get nethogs 安裝 。
NetHogs是一個小型的’net top’工具,不像大多數工具那樣拖慢每個協議或者是每個子網的速度而是按照程序進行頻寬分組.NetHogs NetHogs不需要依賴載入某個特殊的核心模組. 如果發生了網路阻塞你可以啟動NetHogs立即看到哪個PID造成的這種狀況.這樣就很容易找出哪個程式跑飛了然後突然佔用你的頻寬.
##只用來監視裝置(enp0s8)的網路頻寬可以使用如下命令:
# nethogs enp0s8
Ethernet link detected
Waiting for first packet to arrive (see sourceforge.net bug 1019381)
NetHogs version 0.8.5
PID USER PROGRAM DEV SENT RECEIVED
767 arch sshd: [email protected]/0 enp0s8 0.131 0.064 KB/sec
? root unknown TCP 0.000 0.000 KB/sec
TOTAL
##用’-d’來新增重新整理頻率引數,`device name` 用來檢測給定的某個或者某些裝置的頻寬(預設是eth0).例如:設定5秒鐘的重新整理頻率,鍵入如下命令即可:
# nethogs enp0s8 -d 5
Ethernet link detected
Waiting for first packet to arrive (see sourceforge.net bug 1019381)
NetHogs version 0.8.5
PID USER PROGRAM DEV SENT RECEIVED
? root 192.168.56.202:8090-192.168.56.1:64341 0.077 0.070 KB/sec
767 arch sshd: [email protected]/0 enp0s8 0.000 0.000 KB/sec
? root unknown TCP 0.000 0.000 KB/sec
TOTAL 0.077 0.070 KB/sec
##工具使用參考連結:https://github.com/raboof/nethogs
測試報告輸出
統計完效能測試過程中收集的監控指標後,生成視覺化報表。
- 通常來說,效能報告中要包含如下內容:
測試結論:包括被測服務最大QPS、響應時間等指標是否達到期望,部署建議等。
測試環境描述:包括效能需求、測試用伺服器配置、測試資料來源、測試方法等
監控指標統計:響應時間統計、QPS、伺服器指標統計,程序指標統計。
結語
效能測試需要提升的地方:
- 結合系統歷史性能資料進行動態趨勢分析和判斷
- 綜合測試因素,資料給出測試結論
- 提出效能測試改進項,效能測試平臺建設
整理自論壇和個人工作經驗,此處是基礎,希望大家給予建議和指正。
相關推薦
後臺效能測試——簡例
概述 效能測試 是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項效能指標進行測試。負載測試和壓力測試都屬於效能測試,兩者可以結合進行。通過負載測試,確定在各種工作負載下系統的效能,目標是測試當負載逐漸增加時,系統各項效能指標的變化情況。
SpringBoot Redis 訊息 效能測試簡例
參考: http://spring.io/guides/gs/messaging-redis/ 一、運用SpringBoot2.0 ,先看Pom檔案引用 需要引入springboot及、redis依賴 <dependency>
Web效能測試用例設計實踐
隨著網路技術的迅速發展,尤其是WEB及其應用程式的普及,各類基於WEB的應用程式以其方便、快速,易操作等特點不斷成為軟體開發的重點。與此同時,隨著需求量與應用領域的不斷擴大,對WEB應用軟體的正確性、有效性和對WEB伺服器等方面都提出了越來越高的效能要求,今天我就來跟大家分享一個性能測試用例,以便幫
openstack效能測試用例和測試結果
雲平臺迴歸測試資料分析 1.1. Cpu不同繫結策略對比測試 測試過程:在單臺host上起一臺vm,8核cpu,cpu採用不同的繫結策略。在vm上部署tomcat作為web server,用apache ab命令跑併發,並將8核cpu全部跑滿,測試檔案為動態小檔
手機APP後臺邏輯測試用例應該考慮哪些方面?
安裝與解除安裝:●應用是否可以在IOS不同系統版本或android不同系統版本上安裝(有的系統版本過低,應用不能適配)●軟體安裝後是否可以正常執行,安裝後的資料夾及檔案是否可以寫到指定的目錄裡。●安裝過程中是否可以取消●安裝空間不足時是否有相應提示●如果應用需要通過網路驗證之類的安裝,需要測試一下斷網情況下是
效能測試案例模板 效能測試用例模板
網上功能測試案例模板各種各種不計其數,效能測試案例模板少之又少,前段時間看到一個朋友在群裡跪求效能測試案例模板,其實不用跪,只要大家多總結,多思考,自己也能設計出一個滿足自己測試需求的效能測試案例模板,以下模板為個人經常使用的效能測試案例模板,希望對大家能有所幫助!
Junit5單元測試簡例
下面描述一下Junit單元測試的簡例,幫助大家快速上手: 1. 軟體資訊:Java8,eclipse(自帶Junit5)。 2. 在eclipse中建立一個類,類中帶有若干方法。 3. 右鍵類選擇New->other->Junit Test Case。
jmeter介面測試實戰簡例
1.介面需求文件說明 2.開啟jmeter,新建執行緒組,執行緒組裡面預設配置就可以 3.建立http請求,我這裡是http請求,所以我選擇這個,跟進實際情況 4.post請求說明,post直接加引數和引數值就可以了,get請求直接在路徑哪裡加引數名和引數值就可以了,但要注意格式 5.
[LoadRunner]LR效能測試結果樣例分析
測試結果分析 LoadRunner效能測試結果分析是個複雜的過程,通常可以從結果摘要、併發數、平均事務響應時間、每秒點選數、業務成功率、系統資源、網頁細分圖、Web伺服器資源、資料庫伺服器資源等幾個方面分析,如圖1- 1所示。效能測試結果分析的一個重要的原則是以效能測試的需求指標為導向。我們回顧一下本
單例模式的設計與實現,及效能測試
單例模式在實際應用中使用非常廣泛,比如日誌寫入,單例模式可以避免錯誤,資料庫連線可以避免鎖死,用例執行可以避免重複呼叫。 先是列舉實現法: public enum Singleton01 { INSTANCE; public void operator() { S
簡談linux環境下網路效能測試工具iperf
通用引數 -f [kmKM] 分別表示以Kbits, Mbits, KBytes, MBytes顯示報告,預設以Mbits為單位,eg:iperf -c 222.35.11.23 -f K -i sec 以秒為單位顯示報告間隔,eg:iperf -c 222.35.11.23 -i 2 -l 緩衝區大小
黑盒測試用例設計-錯誤推測和因果圖方法
9.png sub png str 二義性 生成 當前 其中 關系 3.錯誤推測方法 基於經驗和直覺,找出程序中你認為可能出現的錯誤,有針對性地設計測試用例。經驗可能來自於在對某項業務的測試較多,也可以來自於售後用戶的反饋意見,或者從故障管理庫中整理bug。梳
黑盒測試用例設計-判定表驅動方法
組成 出了 mage 條件 技術分享 .cn 動作 align 轉換成 5.判定表驅動方法 前面因果圖方法中已經用到了判定表。判定表是分析和表達多邏輯條件下執行不同操作的情況的工具。在程序設計中可作為編寫程序的輔助工具。把復雜的邏輯關系和多種條件組合的情況表達
黑盒測試用例設計-正交試驗方法(七)
nbsp 出現 logs 因果圖 設計 步驟 引入 常用 因子和 6.正交試驗方法 第4節結尾提到,因果關系非常龐大,導致由此得到的測試用例數目多大。因而引入正交試驗法,從大量的試驗數據中挑選適量的、有代表性的點安排測試,來有效地、合理地減少測試的工時。 (1
黑盒測試用例設計-功能圖法和場景法(八)
重新 感覺 結果 軟件 簡單 可能 遷移 面向 通話 7.功能圖法 一個程序的功能包括靜態和動態說明。動態說明描述輸入數據的次序或轉移的次序,和業務流程緊密對應。靜態說明描述了輸入輸出條件之間的對應關系。對於面向市場的產品,其邏輯復雜、組合龐大,必須用動態說明
黑盒測試用例設計-用例維護(十二)
叠代 測試的 部分 開發 用例設計 來源 nbsp 延伸 不同的 六、用例維護—經驗用例 當進入執行測試階段時, 我們總是能發現一些缺陷的出現是出乎我們意料的, 或者說是已有的測試需求和測試用例未能覆蓋的。那麽,對於這部分缺陷,也應當在分析整理後添加到測試需求
APP接口自動化測試JAVA+TestNG(三)之HTTP接口測試實例
ons ace src 沒有 app 9.png 轉載 image try 前言 前兩篇普及相關基礎知識後,本篇主要對舉例對國家氣象局接口自動化測試進行講解(Get請求及結果斷言),以達到自動化測試入門目的,除了前兩篇的一些了解外,需要有一定的JAVA知識(HTTP
優秀的測試用例應該有延展性
支持 性方面 shell腳本編程 功能需求 如何 amp shell 都是 更改 轉載:http://mp.weixin.qq.com/s?__biz=MjM5NTU0MDg0MA==&mid=2651233212&idx=2&sn=f96dd18d
功能測試用例的書寫
測試用例功能測試用例的書寫功能性測試用例1.測試的來源,及測試的需求 測試用力的主要來源有:1)需求說明及相關文檔2)相關的設計說明(概要設計,詳細設計等)3)與開發組交流對需求理解的記錄(可以是開發人員的一個解釋)4)已經基本成型的UI(可以有針對性的補充一些用例) 簡而言之,所有你能得到的項目文檔,
測試實例
求和 toc 有道 任務 數據集 也有 能夠 能力 span 該範例已經包含一個測試用例的模板。 項目/軟件 技術出口合同網絡申領系統 (企業端) 程序版本 1.0.25 功能模塊名 Login 編制人