如何对修改密码接口进行压测?终于找到解决办法了

news/2024/11/22 20:07:21/

做接口测试中,对于一般性的单业务接口测试很多工具可供选择,但是对于一些相关业务相关性的关联接口测试就比较麻烦,使用工具比如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() {@Overrideprotected void before() {}@Overrideprotected void doing() throws Exception {userCenter.modifyPwd()}@Overrideprotected void after() {}}threadBase.setTimes(times)threads.add(threadBase)}new Concurrent(threads).start()allOver()}
}

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;}@Overridepublic 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();}
}

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家评论区留言333或私信我领取哦

 


http://www.ppmy.cn/news/655937.html

相关文章

【SpringBoot】一、SpringBoot3新特性与改变详细分析

前言 本文适合具有springboot的基础的同学。 SpringBoot3改变&新特性 一、前置条件二、自动配置包位置变化1、Springboot2.X2、Springboot3.X 三、jakata api迁移1、Springboot2.X2、Springboot3.X3、SpringBoot3使用druid有问题&#xff0c;因为它引用的是旧的包 四 新特…

java连接数据库的5种方式

方式一直接导入第三方库驱动类 这种加载方式在jdbc入门时已经用过&#xff0c;这个driver属于第三方库&#xff0c;。为静态加载&#xff0c;灵活性差&#xff0c;依赖性抢 方式二使用反射机制获取 方式一和方式二代码 package com.hsp.edu;import com.mysql.cj.jdbc.Driver;i…

C#使用读卡器读取身份证信息(包含物理卡号)

说明&#xff1a;本人用的是精伦身份证阅读器idr210 免驱 摘要&#xff1a;目前市面上读取身份证技术已经很成熟了&#xff0c;大多数文章都介绍了读取身份证的详细信息&#xff0c;但是这些信息里并不包含身份证的物理卡号&#xff0c;所以本文讲解的重点在读取身份证的物理卡…

.net core 3.1精伦身份证读卡器IDR210-2(部标版)二次开发

业务需求 在学员录入的时候添加一个读取身份证填充对应信息的功能&#xff0c;但遇到如下问题&#xff1a; 官方提供的demo读取身份证使用了com组件和activeX控件的技术&#xff0c;并且只支持IE&#xff0c;我们的前端项目没有兼容IE技术选型选择了使用.net core 3.1,但网上…

身份证读卡器 护照阅读器,如何能做到读取多证件呢?

关联词&#xff1a;护照阅读器 护照识别仪 护照扫描仪 护照扫描机 电子护照阅读器 电子护照阅器一体机 护照批量录入 护照录入 护照识别 护照管理、证件识读仪、护照阅读机、护照读取机、护照识别一体机 护照阅读机原理护照阅读机品牌哪个好——电子护照&#xff0c;全称是携带…

新中新二代身份证读卡器DKQ-A16D C# Demo 无法运行问题

116D-A16D阅读器发行盘中的C# Demo 无法直接运行&#xff0c;但是其他Demo可正常运行。怀疑代码有问题&#xff0c;有幸看到了https://blog.csdn.net/yaogh/article/details/53419392 这位仁兄的帖子&#xff0c;根据其分析&#xff0c;发现确实就是权限的问题&#xff0c;所以…

德卡T10读卡器 读取身份证号码和身份证UID

这个简单的测试项目,界面上有个timer控件,设计的是3秒执行一下读取身份证的动作,目前想到的是这种循环方式,德卡T10这个机子,身份证放上去,不会自动去执行读取的操作。 1.界面 2.界面的代码 Form1.cs 如下 1 using System;2

新中新二代身份证读卡Syn_ReadBaseMsg方法

新中新二代身份证读卡器dkq-a16d&#xff0c;在C#中读卡开发时&#xff0c;参考随机附带的C#参考代码&#xff0c;能够读取成功&#xff0c;但读几次程序就莫名其妙的关掉了&#xff0c;有时连错误都捕捉不到&#xff0c;搞了很长时间也没搞定&#xff0c;后来以为会不会是win7…