python接口测试对修改密码接口进行压测
作者:FunTester 时间:2022-05-16 04:26:15
引言
做接口测试中,对于一般性的单业务接口测试很多工具可供选择,但是对于一些相关业务相关性的关联接口测试就比较麻烦,使用工具比如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();
}
}
来源:https://mp.weixin.qq.com/s/9CL_6-uZOlAh7oeo7NOpag
标签:python,接口测试,修改密码,接口压测
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
ASP内置对象Request和Response用法详解
2007-09-14 10:35:00
更改localhost为其他名字的方法
2023-11-23 08:07:52
python扫描proxy并获取可用代理ip的实例
2023-07-29 16:42:50
python多线程用法实例详解
2023-02-08 11:24:03
python读取当前目录下的CSV文件数据
2022-04-06 16:50:35
![](https://img.aspxhome.com/file/2023/6/87496_0s.jpg)
下拉列表两级连动的新方法(二)
2009-06-04 18:22:00
pandas 时间格式转换的实现
2021-03-23 13:09:01
python的pygal模块绘制反正切函数图像方法
2021-08-01 18:48:21
![](https://img.aspxhome.com/file/2023/1/84111_0s.png)
如何列出我所需要数据视图?
2010-01-12 20:00:00
python通过BF算法实现关键词匹配的方法
2022-10-19 03:56:37
Python基础之函数嵌套知识总结
2021-12-07 18:54:09
![](https://img.aspxhome.com/file/2023/5/99315_0s.png)
python导入不同目录下的自定义模块过程解析
2022-11-08 16:05:47
![](https://img.aspxhome.com/file/2023/7/86537_0s.png)
数据库连接字符串的常见问题和解决方法
2008-11-28 15:16:00
opencv-python 开发环境的安装、配置教程详解
2022-04-25 22:14:58
![](https://img.aspxhome.com/file/2023/7/89377_0s.jpg)
详解Python安装scrapy的正确姿势
2023-04-04 01:38:14
![](https://img.aspxhome.com/file/2023/9/76749_0s.png)
七种PHP开发环境搭建工具
2023-10-25 13:47:48
![](https://img.aspxhome.com/file/2023/6/55816_0s.jpg)
PyTorch深度学习模型的保存和加载流程详解
2023-07-10 04:58:33
![](https://img.aspxhome.com/file/2023/4/63194_0s.png)
Python实现k-means算法
2023-07-01 22:06:53
![](https://img.aspxhome.com/file/2023/8/79588_0s.png)
浮动元素对浏览器的支持
2008-02-02 10:05:00
分步启动数据库以重命名数据文件
2009-03-25 12:33:00