使用 做签名的post_基础实操|使用jmeter对聊天软件进行接口测试
前言
準備上架一款聊天app,上架之前準備做一些測試工作,模擬用戶進入房間,維持心跳,房間送禮,發言等行為(因為用的第三方im以及聲網,這些都是基于http的),也不是很懂測試,聽老大說過一嘴,可以用jmeter,就嘗試了下。
安裝
直接去官網下載下載地址下載完成之后直接解壓。
點擊這個文件就可以打開了。
使用
默認會有一個測試計劃testplan,可以改名也可以不改,我是懶得改。
創建一個ThreadGroup
一個線程組其實就可以用來測一個接口了。
numberofthreads可以定義開多少個線程(模擬的用戶數量),Ramp-upPeriod(inseconds):達到指定線程數所需要的時間。舉例:線程數設置為50,此處設置為5,那么
每秒啟動的線程數 =線程數50/5=10。loopcount循環次數。
創建一個HTTPRequest
線程組定義了策略,而httprequest就是具體執行的方法了。
protocol定義協議,ip定義域名,port指定端口,post這個下拉框指定請求方法,path指定訪問路徑,encoding指定編碼,bodydata因為指定post的body。
遇到的問題
不同的用戶有不同的token,怎么給不同的用戶分配不同的token
設置請求頭
接口有簽名校驗,怎么通過java代碼傳遞簽名
加密的jar包怎么引入
通過csv文件
把需要模擬的用戶的token放進去
基本上看下配置就知道怎么回事了,filename指定文件位置,encoding指定編碼,variablenames變量名(用分隔符區分--基本上csv文件有多少個字段,定義多少個變量)Delimiter分隔符csv文件一般用,,sharemode就是共享模式了allthread可以分配給所有的線程。
我定義了兩個字段,下面我的csv文件。
定義好了變量,我們直接使用${token}的方式就可以獲取token了。
設置請求頭
最重要的info:G={sign}&s={token},這里的${token}就是上面csv文件里分配的token了,sign一會再解釋。
加密簽名
使用java代碼來執行加密操作。
下面的script提供了一些全局變量,分別ctx估計是context,var就是變量了,log就是日志。
import com.x.x.x.x.x.EncryptUtils;String body="roomId=123456";String token=vars.get("token");String apiKey="abcdef";String info="s="+token+"&t="+client;String key=info+body+apiKey;log.info("key="+key);String sign=EncryptUtils.md5(key);String header="G="+sign+"&"+info;log.info("sign="+header);vars.put("sign",header);這里就把上面header需要的sign給回填進去了,這樣就可以完成驗簽的工作了,當然我這里寫的比較簡單。
引入jar包
上面的腳本里面有我們自己寫的jar包,需要import進jmeter才能被import。流程如下:
請求結果歸檔
定時發送
比如我們的心跳接口是需要client每隔5s訪問一次,需要定時發送。
我這里寫的是30s。
結束語
jmeter有很多功能,我這里只是用來測試接口。
鏈接:https://juejin.im/post/6869255992992464910
本文為51Testing經授權轉載,轉載文章所包含的文字來源于作者。如因內容或版權等問題,請聯系51Testing進行刪除
推薦閱讀點擊閱讀?入門必會:小白必看的Jmeter負載測試實例
點擊閱讀?JMeter也可以實現自動化測試啦!
點擊閱讀?Jmeter壓力測試中關于Http的那些事兒
點擊閱讀?Jmeter實現接口壓測的完整流程,不要再說你不會了!
點擊閱讀?現在比任何時候都需要這個接口自動化實例說明!
戳總結
以上是生活随笔為你收集整理的使用 做签名的post_基础实操|使用jmeter对聊天软件进行接口测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pyecharts x轴字体大小调整_p
- 下一篇: 网路工程师要不要学mysql_网络工程师