溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie

發(fā)布時間:2020-06-09 09:20:32 來源:網(wǎng)絡(luò) 閱讀:5311 作者:809316839 欄目:軟件技術(shù)

談到性能測試,經(jīng)常需要對用戶進行參數(shù)化,jemter工具參數(shù)化經(jīng)常使用的一個元件就是CSV數(shù)據(jù)文件設(shè)置

  • 首先建議大家創(chuàng)建一個規(guī)范的目錄保存文件
目錄 作用
data 保存參數(shù)
result 保存結(jié)果
script 保存腳本
  • 如下所示
    Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
  • 設(shè)置目錄的好處,就是文件路徑可以使用相對路徑,這樣可以跨系統(tǒng)(window、linux),跨平臺而不用修改路徑
    1. 首先要在用戶變量中設(shè)置一個變量path,值為../data/,..的意思代表當前目錄往上一個目錄
      Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
    2. 然后在data目錄新增一個.csv格式的文件,建議新增一個txt格式的文本文件,然后改成.csv格式文件
      Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 變量如下
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
    3. 添加CSV元件,線程右鍵》添加》配置元件》CSV數(shù)據(jù)文件設(shè)置
      Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 配置如下:
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 調(diào)用參數(shù)
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
    4. ?默認系統(tǒng)都是需要登錄,才能操作其它接口,所以需要添加一個HTTP Cookie 管理器,默認Cookie管理器是關(guān)閉的,需要修改jmeter配置文件jmeter.properties,該文件在jmeter\bin\路徑下,找到#CookieManager.save.cookies=false 修改為CookieManager.save.cookies=true,保存配置文件重啟jmeter
      Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 點擊測試計劃右鍵》添加》配置元件》HTTP Cookie 管理器
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • Cookie管理器的作用就是幫你自動管理系統(tǒng)登陸獲取的cookie,其它接口需要用到的時候自動調(diào)用
      • Cookie管理器的作用域解釋:不同的線程cookie不會互相調(diào)用,cookie管理器如果放置在測試計劃下,則線程下的所有接口都可以自動調(diào)用cookie,如果放置在事物管理器下,則只有該管理器下的接口才會調(diào)用到,其他和該事物平級的接口則不會被調(diào)用
    5. 分析實際案例一,本案例添加了cookie管理器,實際請求還是報錯
      • 響應(yīng)結(jié)果提示:status":400,"error":"Bad Request",Missing cookie 'timeZone' for method parameter of type in
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 查詢請求使用的cookie管理器,管理器調(diào)用的cookie參數(shù)
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 由于cookie管理器不是萬能的,如果遇到報錯,就要實際結(jié)合接口請求進行分析,手動進行查詢調(diào)試,手動的cookie如下:
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • cookie值詳細如下:
        sid=c4d29545-3409-4117-81be-a6562a6f8c2f; mip_curr_lang=zh-CN; user_info=%7B%22id%22%3A%22u_10212853605%22%2C%22parentId%22%3A%22d_9743384365%22%2C%22name%22%3A%22%E8%B0%A2%E7%94%B0%22%2C%22fdLangType%22%3A%22zh-CN%22%2C%22fdPositionName%22%3A%22%E6%B5%8B%E8%AF%95%E5%B7%A5%E7%A8%8B%E5%B8%88%22%2C%22fdEmail%22%3A%22tian2.xie%40meicloud.com%22%2C%22loginName%22%3A%22xietian1%22%2C%22fdEnglishName%22%3A%22%22%2C%22fdTimeZone%22%3A%22Asia%2FShanghai%22%2C%22fdEmployeeNumber%22%3A%2220215183%22%2C%22fdDepartmentEnglishName%22%3A%22Midea%20Holding%20Group_Midea%20Group_Shenzhen%20Midea%20Cloud%20and%20Intelligent%20Technology%20LTD_Midea%20Cloud%20Department_MQ%20Technology%20PlatformDevops%20Platform%20Research%20and%20Development%22%2C%22fdDepartmentName%22%3A%22%E7%BE%8E%E7%9A%84%E7%BE%8E%E7%9A%84%E9%9B%86%E5%9B%A2%E6%B7%B1%E5%9C%B3%E7%BE%8E%E4%BA%91%E6%99%BA%E6%95%B0%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8%E7%BE%8E%E4%BF%A1%E4%BA%91%E4%BA%8B%E4%B8%9A%E9%83%A8_%E7%BE%8E%E6%93%8E%E6%8A%80%E6%9C%AF%E5%B9%B3%E5%8F%B0_Devops%20%E5%B9%B3%E5%8F%B0%E4%BA%A7%E5%93%81%E7%A0%94%E5%8F%91%22%2C%22locale%22%3A%22zh_CN%22%2C%22fdHierarchyId%22%3A%22x526x1460494117x7509007994x7659897777x9732499571x9743384365x10212853605x%22%2C%22shiroid%22%3Anull%7D; OAM_LANG_PREF=v1.0~cHJlZmVycmVkTGFuZ3VhZ2U9emh+ZGVmYXVsdExhbmd1YWdlTWFya2VyPWZhbHNl; oam_locale=zh; mip_lang=zh; mideatest_sso_token=eOXIT3uFt6jYti%2FYd3JLHcaL2nd0xvXmBE7enJMQJsWkLsvg9Uu4FA%3D%3D; MAS_TGC_UAT=eyJhbGciOiJIUzUxMiJ9.WlhsS05tRllRV2xQYVVwRlVsVlphVXhEU21oaVIyTnBUMmxLYTJGWVNXbE1RMHBzWW0xTmFVOXBTa0pOVkVrMFVUQktSRXhWYUZSTmFsVXlTVzR3TGk1SVlrdFdURWhrYlZCa2JVcHVTRXQwUmsxcGRrSjNMbGR4VldGYVdrczBiVTFSYm5CM2MydDViWEl3VGxGVVVGaDVWWEJXTTJWa2FsRnFSV05wVUc5MVgxWlZSek5pUVZwdVUyNUNObFpFZVdGWVZubDZiV2hvVXpGdWF6UnllbnB5WVRkSWJYUklXVVZtTm1KRFJrZzBabWszVmpOZldXaGZjMDlYYVhOM112c3RkVXhMZFhsa1JETmxORzVMVUdwbGEzZFJWRUZzUTIxbFFUVjNZMVpaTVdWRVJsaFhPWEZOVTJWa2NrYzVRVlZJUXpOR1UyWjJNWFJRZEdwUmVXRk1PV3d3ZWtoUVpsQk9iRmxYYW5GeGFYVmlPREZNYVU1bVVGOXBWbm80ZHpJeWMxTkNOVEJtTW5CcVgxUlJVbEpyTW1oQlVuRmlUWEF6YzFoMVlYaG1RMUJMVnpOd01sZFJaRGRhUmxKMlltOW1TM1p4VDBndU1YTkdMVE5aVEdoUExXTTJTREZuY0ZkTVJtdEtkdz09.XI9uAFyY6XWSA7CRcmMwGuNvIcAig6wF5wlVF4o9qE8F6jKEfq6OHoFqZg40jO87RyAW3fivDzrNZkJmo9AIyw; ObSSOCookie=DoSRzdMFH1aFXJM9XH5G×××wj0dG2BDxv01ftZRX1PLroXfL6MPfHpSHXHCn0gJBn195Iccn4CvlQ0cydDfUfaMGTKM5%2FQzzWBuGownsQIPc9WTP4rZNbbIOsZ2tGcg%2Btl5FK7QqmsKRYg9PknRhklmgUKeq%2FWamFaPJgwuyhGQ%2BKqxCut%2FwpnpBtccz0McnG%2BsP5h4pyPNaydZQK3eXpQk1xFZdBZuuXsbuhKADTW1HEJtk8NzAbXhWN4ZLCJHrqzvsjSgLmCph3X1O3gBZrenzuA4yVizUSUo5RFobUz5v%2FWvp3zKkp%2FkfM%2FT%2FzrPTGUGkwduxXugMIM%2BNAyIXnY%2FokAg3sokv345cjMcgnGHY%3D; language=zh-CN; timeZone=8
      • 結(jié)合響應(yīng)報錯,原來是調(diào)用的cookie丟失了; language=zh-CN; timeZone=8,導(dǎo)致請求失敗,見紅色字體
      • 因為自動cookie管理器會報錯,所以需要把cookie管理器放置到登錄事物管理器下,這樣cookie管理器就不會影響到查詢請求設(shè)置的cookie,設(shè)置如下
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 由于ObSSOCookie變量是cookie管理器進行管理的,所以可以打開debug sample查看該變量在cookie中的命名,如下
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 經(jīng)過調(diào)試,只需要在查詢請求下的表頭,增加一個Cookie變量,值為ObSSOCookie=${COOKIE_ObSSOCookie}; language=zh-CN; timeZone=
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 修改完成之后,進行調(diào)試,調(diào)試成功
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
    6. 分析實際案例二
      • 響應(yīng)結(jié)果提示:,"status":400,"error":"Bad Request","exception":"org.springframework.web.bind.ServletRequestBindingException","message":"Missing cookie 'language' for method parameter of type String"
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 提交請求使用的cookie管理器,管理器調(diào)用的cookie參數(shù)
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 結(jié)合響應(yīng)報錯,原來是調(diào)用的cookie丟失了: language=zh-CN,導(dǎo)致請求失敗,可以在HTTP Cookie管理器中維護該字段,如下:
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 調(diào)試結(jié)果,提交成功
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 此時,每個該域名下的請求,Cookie參數(shù)都會被添加language=zh-CN進去,如下所示:
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
    7. 分析實際案例三,1線程循環(huán)3次,首先登錄,然后提交請求,系統(tǒng)只成功了第一筆提交數(shù)據(jù),第2、3筆提交失敗
      Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 原因分析:由于使用了HTTP Cookie管理器,但是卻沒勾選每次反復(fù)清除Cookies,導(dǎo)致第2、3次循環(huán)使用的cookie依然是第一次循環(huán)獲取的cookie值,只需要勾選即可,如下:
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie
      • 修改完成之后,進行調(diào)試,調(diào)試成功
        Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie

此時,不管多個用戶還是單個用戶,都可以實現(xiàn)并發(fā)查詢


? ?如果文章對你有幫助,可以在右下角點擊關(guān)注功能,歡迎轉(zhuǎn)發(fā)、拍磚,本人會持續(xù)推出與測試有關(guān)的文章,與大家分享測試技術(shù),每一篇原創(chuàng)文章都是用心編寫,杜絕抄襲復(fù)制,微信公眾號與本平臺文章同步,方便大家查閱


QQ技術(shù)交流群:加群請輸入驗證信息51CTO
??????????????Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie


微信二維碼關(guān)注公眾號:

????????????Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie


關(guān)注之后,回復(fù)資源下載,即可獲取本人共享的各種資源下載地址

Jmeter如何實現(xiàn)參數(shù)化用戶,并且管理Cookie

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI