python接口測試對修改密碼接口進行壓測
引言
做接口測試中,對於一般性的單業務接口測試很多工具可供選擇,但是對於一些相關業務相關性的關聯接口測試就比較麻煩,使用工具比如jmeter、postman、soapui等等就比較麻煩。
我比較偏重腳本化執行測試用例,所以選擇瞭groovy作為主要語言來進行接口測試,但是腳本依賴的庫還是基於之前所在的java為主的測試框架,有興趣的可以翻翻以前的文章。
項目的架構思路是以模塊為基礎把接口分類,然後對於接口的請求單獨進行實現。通過一個user作為一個用戶,攜帶各種屬性,如:uname,pwd,token,userinfobean等信息。來作為各個模塊類之間的信息傳遞。
回到修改密碼接口,簡單說一下我們接口的邏輯,先登錄,獲取token作為用戶身份的唯一校驗值,修改密碼接口參數,newpwd,oldpwd,token。成功之後會返回新的token,作為用戶繼續其他操作的校驗值。
測試腳本代碼
分享一下自己的測試腳本代碼:
class T8 extends OkayBase { public static void main(String[] args) { int thread =changeStringToInt(args[0]) int times =changeStringToInt(args[1]) List<ThreadBase> threads = new ArrayList<>() for (int i = 0; i < thread; i++) { OkayBase base = getBase(i) UserCenter userCenter = new UserCenter(base) userCenter.modifyPwd() ThreadBase threadBase = new ThreadBase() { @Override protected void before() { } @Override protected void doing() throws Exception { userCenter.modifyPwd() } @Override protected void after() { } } threadBase.setTimes(times) threads.add(threadBase) } new Concurrent(threads).start() allOver() } }
usercenter主要代碼
main方法留瞭兩個參數表示線程數和單線程請求數,下面是usercenter的主要代碼。
public class UserCenter extends OkayBase { private static Logger logger = LoggerFactory.getLogger(UserCenter.class); public UserCenter(OkayBase okayBase) { super(okayBase); } public JSONObject modifyPwd() { String url = UserApi.MODIFY_PWD; JSONObject params = getParams(); params.put("newpwd", getPassword(this.getUname())); params.put("oldpwd", getPassword(this.getPwd())); JSONObject response = getPostResponse(url, params); output(response); if (isRight(response)) { String string = response.getJSONObject("data").getString("token"); this.setToken(string); } return response; } }
okaybase主要代碼
public class OkayBase extends SourceCode implements IBase { private static Logger logger = LoggerFactory.getLogger(OkayBase.class); int uid; String token; String uname; String pwd; public OkayBase(String uname, String pwd) { this.uname = uname; this.pwd = pwd; login(); } public String getPassword() { String s = uname.substring(uname.length() - 6); return getPassword(s); } public String getPassword(String pwd) { return RSAUtils.getPassword(pwd); } public JSONObject getParams() { JSONObject json = getJson("uid=" + uid, "token=" + token); json.put("imei", "isFake"); json.put("serial", "W170500652"); json.put("ua", "f_an_4..0"); return json; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public int getUid() { return uid; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } public String getUname() { return uname; } @Override public boolean isRight(JSONObject jsonObject) { int code = TEST_ERROR_CODE; try { code = jsonObject.getJSONObject("meta").getInt("ecode"); JSONObject data = jsonObject.getJSONObject("data"); return code == 0 && !data.isEmpty(); } catch (Exception e) { return false; } } /** * 測試結束,資源釋放 */ public static void allOver() { FanLibrary.testOver(); } }
以上就是python接口測試對修改密碼接口進行壓測的詳細內容,更多關於python修改密碼接口壓測的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- python性能測試手機號驗證碼登錄壓測示例詳解
- python性能測試對手機號綁定進行壓測
- springboot框架的全局異常處理方案詳解
- Java中生成微信小程序太陽碼的實現方案
- ResponseBodyAdvice踩坑及解決