目錄
引言
做接口測試中,對于一般性得單業(yè)務(wù)接口測試很多工具可供選擇,但是對于一些相關(guān)業(yè)務(wù)相關(guān)性得關(guān)聯(lián)接口測試就比較麻煩,使用工具比如jmeter、postman、soapui等等就比較麻煩。
我比較偏重化執(zhí)行測試用例,所以選擇了groovy作為主要語言來進行接口測試,但是依賴得庫還是基于之前所在得java為主得測試框架,有興趣得可以翻翻以前得內(nèi)容。
項目得架構(gòu)思路是以模塊為基礎(chǔ)把接口分類,然后對于接口得請求單獨進行實現(xiàn)。通過一個user作為一個用戶,攜帶各種屬性,如:uname,pwd,token,userinfobean等信息。來作為各個模塊類之間得信息傳遞。
回到修改密碼接口,簡單說一下我們接口得邏輯,先登錄,獲取token作為用戶身份得唯一校驗值,修改密碼接口參數(shù),newpwd,oldpwd,token。成功之后會返回新得token,作為用戶繼續(xù)其他操作得校驗值。
測試代碼
分享一下自己得測試代碼:
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方法留了兩個參數(shù)表示線程數(shù)和單線程請求數(shù),下面是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; } } /** * 測試結(jié)束,資源釋放 */ public static void allOver() { FanLibrary.testOver(); }}
以上就是python接口測試對修改密碼接口進行壓測得詳細內(nèi)容,更多關(guān)于python修改密碼接口壓測得資料請關(guān)注之家其它相關(guān)內(nèi)容!
聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。