【转】JMeter学习(二十七)Jmeter常见问题
生活随笔
收集整理的這篇文章主要介紹了
【转】JMeter学习(二十七)Jmeter常见问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
收集工作中JMeter遇到的各種問題 1. ?JMeter的工作原理是什么? 向服務(wù)器提交請(qǐng)求;從服務(wù)器取回請(qǐng)求返回的結(jié)果。 2. ?JMeter的作用? JMeter可以用于測(cè)試靜態(tài)或者動(dòng)態(tài)資源的性能(文件、Servlets、Perl腳本、java對(duì)象、數(shù)據(jù)庫(kù)和查詢、ftp服務(wù)器或者其他的資源)。JMeter用于模擬在服務(wù)器、網(wǎng)絡(luò)或者其他對(duì)象上附加高負(fù)載以測(cè)試他們提供服務(wù)的受壓能力,或者分析他們提供的服務(wù)在不同負(fù)載條件下的總性能情況。你可以用JMeter提供的圖形化界面分析性能指標(biāo)或者在高負(fù)載情況下測(cè)試服務(wù)器/腳本/對(duì)象的行為。 3. ? 怎樣能看到j(luò)meter提供的腳本范例? 在\JMeter\jakarta-jmeter-2.0.3\xdocs\demos目錄下。 4. ? 怎樣設(shè)置并發(fā)用戶數(shù)? 選中可視化界面中左邊樹的Test Plan節(jié)點(diǎn),單擊右鍵,選擇Add-> Thread Group,其中Number of Threads參數(shù)用來設(shè)置發(fā)送請(qǐng)求的用戶數(shù)目。 5. ?JMeter的運(yùn)行指示? Jmeter在運(yùn)行時(shí),右上角有個(gè)單選框大小的小框框,運(yùn)行是該框框?yàn)榫G色,運(yùn)行完畢后,該框框?yàn)榘咨? 6. ?User Parameters的作用是什么? 提高腳本可用性 7. ? 在result里會(huì)出現(xiàn)彩色字體的http response code,說明什么呢? Http response code是http返回值,彩色字體較引人注目,可以使用戶迅速關(guān)注。象綠色的302就說明在這一步驟中,返回值取自本機(jī)的catch,而不是server。 8. ? 怎樣計(jì)算Ramp-up period時(shí)間? Ramp-up period是指每個(gè)請(qǐng)求發(fā)生的總時(shí)間間隔,單位是秒。如果Number of Threads設(shè)置為5,而Ramp-up period是10,那么每個(gè)請(qǐng)求之間的間隔就是10/5,也就是2秒。Ramp-up period設(shè)置為0,就是同時(shí)并發(fā)請(qǐng)求。 9. ? ?Get和Post的區(qū)別? 他們是http協(xié)議的2種不同實(shí)現(xiàn)方式。Get是指server從Request URL取得所需參數(shù)。從result中的request中可以看到,get可以看到參數(shù),但是post是主動(dòng)向server發(fā)送參數(shù),所以一般看不到這些參數(shù)的。 10. 哪些原因可能導(dǎo)致error的產(chǎn)生? a. ? Http錯(cuò)誤,包括不響應(yīng),結(jié)果找不到,數(shù)據(jù)錯(cuò)誤等等; b. ? JMeter本身原因產(chǎn)生的錯(cuò)誤。 11. 為什么Aggregate Report結(jié)果中的Total值不是真正的總和? JMeter給結(jié)果中total的定義是并不完全指總和,為了方便使用,它的值表現(xiàn)了所在列的代表值,比如min值,它的total就是所在列的最小值。下圖就是total在各列所表示的意思。 12. ?JMeter的Thread Number是提供多個(gè)不同用戶并發(fā)的功能么? 不是,Thread Number僅僅是指并發(fā)數(shù),如果需要實(shí)現(xiàn)多個(gè)不同用戶并發(fā),我們應(yīng)該采用其它方法,比如通過在jmeter外建立csv文件的方法來實(shí)現(xiàn)。 13. 同時(shí)并發(fā)請(qǐng)求時(shí),若需要模擬不同的用戶同時(shí)向不同的server并發(fā)請(qǐng)求,怎樣實(shí)現(xiàn)呢? 方法很靈活,我們可以將不同的server在thread里面預(yù)先寫好。或者預(yù)先將固定的變量值寫入csv文件,這樣還可以方便修改。然后將文件添加到User Parameters。 14. ? User Parameter中的DUMMY是什么意思? 當(dāng)其具體內(nèi)容是${__CSVRead(${__property(user.dir)}${FILENAME},next())}時(shí)用來模擬讀文件的下一行。 15. ? 當(dāng)測(cè)試對(duì)象在多server間跳轉(zhuǎn)時(shí),應(yīng)該怎樣處理? 程序運(yùn)行時(shí),有些http和隱函數(shù)會(huì)攜帶另外的server IP,我們可以從他們的返回值中獲取。 16. ? 為何測(cè)試對(duì)象是http和https混雜出現(xiàn)? Https是加密協(xié)議,為了安全,一般不推薦使用http,但是有些地方,使用https過于復(fù)雜或者較難實(shí)現(xiàn),會(huì)采用http協(xié)議。 17. ? Http和https的默認(rèn)端口是什么? Apache server (Http)的默認(rèn)端口是80; SSL (Https)的默認(rèn)端口是443。 18. ? 為何在run時(shí),有些頁(yè)面失敗,但是最后不影響結(jié)果? 原因較多,值得提及的一種是因?yàn)橹髁黜?yè)面與它不存在依賴關(guān)系,所以即使這樣的頁(yè)面出錯(cuò),也不會(huì)影響運(yùn)行得到正常結(jié)果,但是這樣會(huì)影響到測(cè)試的結(jié)果以及分析結(jié)果。 19. 為什么腳本剛開始運(yùn)行就有錯(cuò)誤,其后來的腳本還可運(yùn)行? 在Thread Group中有相關(guān)設(shè)置,如果選擇了continue,即使前面的腳本出現(xiàn)錯(cuò)誤,整個(gè)thread仍會(huì)運(yùn)行直到結(jié)束。選擇Stop Thread會(huì)結(jié)束當(dāng)前thread;選擇Stop Test則會(huì)結(jié)束全部的thread。推薦選項(xiàng)是Stop Thread。 20. ? ? 在Regular expression_r Extractor會(huì)看到Template的值是$1$,這個(gè)值是什么意思呢? $1$是指取第一個(gè)()里面的值。如果Regular expression_r的數(shù)值有多個(gè),用這種方法可以避免不必要的麻煩。
21. ? ?Regular expression_r中的(.*)是什么意思? 那是一個(gè)正則表達(dá)式(regular expression_r)。’.’等同于sql語言中的’?’,表示可有可無。’*’表示0個(gè)或多個(gè)。’()’表示需要取值。(.*)表達(dá)任意長(zhǎng)度的字符串。 22. ? 在讀取Regular expression_r時(shí)要注意什么? 一定要保證所取數(shù)值的絕對(duì)唯一性。 23. ? 怎樣才能判斷什么樣的情況需要添加Regular expression_r Extractor? 檢查Http Request中的Send Parameters,如果有某個(gè)參數(shù)是其前一個(gè)page中所沒有給出的,就要到原文件中查找,并添加Regular expression_r Extractor到其前一page的http request中。 24. ? 在自動(dòng)獲取的腳本中有時(shí)會(huì)出現(xiàn)空的http request,是什么意思呢? 是因?yàn)樵讷@取腳本時(shí)有些錯(cuò)誤,是腳本工具原因。在run時(shí)這種錯(cuò)誤不參與運(yùn)行的。 25. ? 在運(yùn)行結(jié)果中為何有rate為N/A的情況出現(xiàn)? 可能因?yàn)镴Meter自身問題造成,再次運(yùn)行可以得到正確結(jié)果。 26. ? 常用http錯(cuò)誤代碼有哪些? 400無法解析此請(qǐng)求。 403禁止訪問:訪問被拒絕。 404找不到文件或目錄。 405用于訪問該頁(yè)的HTTP動(dòng)作未被許可。 410文件已刪除。 500服務(wù)器內(nèi)部錯(cuò)誤。 501標(biāo)題值指定的配置沒有執(zhí)行。 502 Web服務(wù)器作為網(wǎng)關(guān)或代理服務(wù)器時(shí)收到無效的響應(yīng)。 27. ? ?Http request中的Send Parameters是指什么? 是指code中寫定的值和自定義變量中得到的值,就是在運(yùn)行頁(yè)面時(shí)需要的參數(shù)。 28. ? ?Parameters在頁(yè)面中是不斷傳遞的么? 是的。參數(shù)再產(chǎn)生后會(huì)在頁(yè)面中一直傳遞到所需頁(yè)面。所以我們可以在動(dòng)態(tài)參數(shù)產(chǎn)生時(shí)捕獲它,也可以在所需頁(yè)面的上一頁(yè)面捕獲。(但是這樣可能有錯(cuò)誤,最好在產(chǎn)生頁(yè)面獲取) 29. ? 在使用JMeter測(cè)試時(shí),是完全模擬用戶操作么?造成的結(jié)果也和用戶操作完全相同么? 是的。JMeter完全模擬用戶操作,所以操作記錄會(huì)全部寫入DB.在運(yùn)行失敗時(shí),可能會(huì)產(chǎn)生錯(cuò)誤數(shù)據(jù),這就取決于腳本檢查是否嚴(yán)謹(jǐn),否則錯(cuò)誤數(shù)據(jù)也會(huì)進(jìn)入DB,給程序運(yùn)行帶來很多麻煩。
21. ? ?Regular expression_r中的(.*)是什么意思? 那是一個(gè)正則表達(dá)式(regular expression_r)。’.’等同于sql語言中的’?’,表示可有可無。’*’表示0個(gè)或多個(gè)。’()’表示需要取值。(.*)表達(dá)任意長(zhǎng)度的字符串。 22. ? 在讀取Regular expression_r時(shí)要注意什么? 一定要保證所取數(shù)值的絕對(duì)唯一性。 23. ? 怎樣才能判斷什么樣的情況需要添加Regular expression_r Extractor? 檢查Http Request中的Send Parameters,如果有某個(gè)參數(shù)是其前一個(gè)page中所沒有給出的,就要到原文件中查找,并添加Regular expression_r Extractor到其前一page的http request中。 24. ? 在自動(dòng)獲取的腳本中有時(shí)會(huì)出現(xiàn)空的http request,是什么意思呢? 是因?yàn)樵讷@取腳本時(shí)有些錯(cuò)誤,是腳本工具原因。在run時(shí)這種錯(cuò)誤不參與運(yùn)行的。 25. ? 在運(yùn)行結(jié)果中為何有rate為N/A的情況出現(xiàn)? 可能因?yàn)镴Meter自身問題造成,再次運(yùn)行可以得到正確結(jié)果。 26. ? 常用http錯(cuò)誤代碼有哪些? 400無法解析此請(qǐng)求。 403禁止訪問:訪問被拒絕。 404找不到文件或目錄。 405用于訪問該頁(yè)的HTTP動(dòng)作未被許可。 410文件已刪除。 500服務(wù)器內(nèi)部錯(cuò)誤。 501標(biāo)題值指定的配置沒有執(zhí)行。 502 Web服務(wù)器作為網(wǎng)關(guān)或代理服務(wù)器時(shí)收到無效的響應(yīng)。 27. ? ?Http request中的Send Parameters是指什么? 是指code中寫定的值和自定義變量中得到的值,就是在運(yùn)行頁(yè)面時(shí)需要的參數(shù)。 28. ? ?Parameters在頁(yè)面中是不斷傳遞的么? 是的。參數(shù)再產(chǎn)生后會(huì)在頁(yè)面中一直傳遞到所需頁(yè)面。所以我們可以在動(dòng)態(tài)參數(shù)產(chǎn)生時(shí)捕獲它,也可以在所需頁(yè)面的上一頁(yè)面捕獲。(但是這樣可能有錯(cuò)誤,最好在產(chǎn)生頁(yè)面獲取) 29. ? 在使用JMeter測(cè)試時(shí),是完全模擬用戶操作么?造成的結(jié)果也和用戶操作完全相同么? 是的。JMeter完全模擬用戶操作,所以操作記錄會(huì)全部寫入DB.在運(yùn)行失敗時(shí),可能會(huì)產(chǎn)生錯(cuò)誤數(shù)據(jù),這就取決于腳本檢查是否嚴(yán)謹(jǐn),否則錯(cuò)誤數(shù)據(jù)也會(huì)進(jìn)入DB,給程序運(yùn)行帶來很多麻煩。
轉(zhuǎn)載于:https://www.cnblogs.com/perfectwang/p/7235459.html
總結(jié)
以上是生活随笔為你收集整理的【转】JMeter学习(二十七)Jmeter常见问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 性能测试的分类
- 下一篇: linux 下环境变量设置