当前位置: 首页 > news >正文

装饰公司网站模版用什么程序做视频网站

装饰公司网站模版,用什么程序做视频网站,专业网站建设品牌,哪些软件可以做网页3 批量获取用户token#xff0c;使用jmeter压力测试 3 批量获取用户token#xff0c;使用jmeter压力测试3.1 需求3.2 实现3.2.1 环境配置3.2.2 修改登录接口UserController和实现类3.2.3 测试类 3.3 使用jmeter进行测试3.4 测试结果3.5 将用户登录逻辑修改回去 3 批量获取用户… 3 批量获取用户token使用jmeter压力测试 3 批量获取用户token使用jmeter压力测试3.1 需求3.2 实现3.2.1 环境配置3.2.2 修改登录接口UserController和实现类3.2.3 测试类 3.3 使用jmeter进行测试3.4 测试结果3.5 将用户登录逻辑修改回去 3 批量获取用户token使用jmeter压力测试 3.1 需求 优惠券秒杀的接口需要模拟1000个不同登录用户下的秒杀场景测试这个接口的性能。 分析 1.如何模拟这1000个用户 我们可以使用for循环在数据库中批量添加这1000个用户然后需要对这1000个用户进行登录以获取这1000个用户的token以便在jmeter发起的请求头中携带这1000个token模拟1000个用户。 2.如何批量获取token 编写脚本发起1000个登录请求并将响应的token写入txt文件中。 3.2 实现 3.2.1 环境配置 1.修改pom.xml文件导入apache包 dependencygroupIdorg.apache.httpcomponents/groupIdartifactIdhttpclient/artifactIdversion4.5.6/version/dependency3.2.2 修改登录接口UserController和实现类 1.登录接口修改UserController.java中的login方法为以下内容 本项目使用的是手机号和验证码登录方式这两个参数携带在请求体requestbody中而不是请求参数中url路径中如果根据手机号登录需要将验证验证码的代码注释掉即注释掉验证逻辑以便直接根据手机号登录而无需验证。 /*** 登录功能* param loginForm 登录参数包含手机号、验证码或者手机号、密码*/ PostMapping(/login) public Result login(RequestBody LoginFormDTO loginForm, HttpSession session){String phone loginForm.getPhone();String code loginForm.getCode();if(phone null){return Result.fail(手机号为空);}// if(code null){ // return Result.fail(验证码为空); // }return userService.login(loginForm, session);}修改实现类中的检验方法 主要注释掉校验验证码这部分的逻辑 // TODO 先不校验验证码 /* if(cacheCode null || !cacheCode.equals(code)){//3.不一致报错return Result.fail(验证码错误);}*///注释掉以上部分impl类中方法如下 Overridepublic Result login(LoginFormDTO loginForm, HttpSession session) {// 1.校验手机号String phone loginForm.getPhone();if (RegexUtils.isPhoneInvalid(phone)) {// 2.如果不符合返回错误信息return Result.fail(手机号格式错误);} // // 3.校验验证码 // Object cacheCode session.getAttribute(code);// 3.从redis获取验证码并校验String cacheCode stringRedisTemplate.opsForValue().get(LOGIN_CODE_KEY phone);String code loginForm.getCode();// TODO 先不校验验证码 /* if(cacheCode null || !cacheCode.equals(code)){//3.不一致报错return Result.fail(验证码错误);}*///注释掉以上部分//一致根据手机号查询用户User user query().eq(phone, phone).one();//5.判断用户是否存在if(user null){//不存在则创建user createUserWithPhone(phone);}// 7.保存用户信息到 redis中// 7.1.随机生成token作为登录令牌String token UUID.randomUUID().toString(true);// 7.2.将User对象转为HashMap存储UserDTO userDTO BeanUtil.copyProperties(user, UserDTO.class);MapString, Object userMap BeanUtil.beanToMap(userDTO, new HashMap(), //beanToMap方法执行了对象到Map的转换CopyOptions.create().setIgnoreNullValue(true) //BeanUtil在转换过程中忽略所有null值的属性.setFieldValueEditor((fieldName, fieldValue) - fieldValue.toString())); //对于每个字段值它简单地调用toString()方法将字段值转换为字符串。// 7.3.存储String tokenKey LOGIN_USER_KEY token;stringRedisTemplate.opsForHash().putAll(tokenKey, userMap);// 7.4.设置token有效期stringRedisTemplate.expire(tokenKey, LOGIN_USER_TTL, TimeUnit.MINUTES);// 8.返回tokenreturn Result.ok(token);}3.2.3 测试类 2.登录流程 用户登录成功后服务端会将token作为data数据返回给客户端并将token存储到Redis中。之后客户端将token添加到请求头Authorization中每次发起请求都需要携带该请求头后端拦截器会根据请求头进行用户身份验证。 3.响应格式 用户登录成功服务端响应格式 {“success”:true,“data”:“301130fd-7e25-4c93-8a79-9eb7d54c6fed”}//响应体 批量获取token脚本Java 思路使用userService从数据库中获取用户集合这里使用的是Mybatis-plus遍历集合中的每个用户将用户的手机号添加到请求体中使用Java的Http客户端发起请求。之后从json响应体中获取token并写入txt文件中。 编写测试类即脚本 测试类内容如下: package com.hmdp;import com.hmdp.entity.User; import com.hmdp.service.IUserService;import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils; import org.json.JSONObject; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;import java.io.BufferedWriter; import java.io.FileWriter;import java.util.List; SpringBootTest public class UserLoginBatch {Autowiredprivate IUserService userService;Testpublic void function(){String loginUrl http://localhost:8080/api/user/login; // 替换为实际的登录URLString tokenFilePath tokens.txt; // 存储Token的文件路径try {HttpClient httpClient HttpClients.createDefault();BufferedWriter writer new BufferedWriter(new FileWriter(tokenFilePath));// 从数据库中获取用户手机号ListUser users userService.list();for(User user : users) {String phoneNumber user.getPhone();// 构建登录请求HttpPost httpPost new HttpPost(loginUrl);//1.如果作为请求参数传递//ListNameValuePair params new ArrayList();//params.add(new BasicNameValuePair(phone, phoneNumber));// 如果登录需要提供密码也可以添加密码参数// params.add(new BasicNameValuePair(password, user_password));//httpPost.setEntity(new UrlEncodedFormEntity(params));// (2.如果作为请求体传递)构建请求体JSON对象JSONObject jsonRequest new JSONObject();jsonRequest.put(phone, phoneNumber);StringEntity requestEntity new StringEntity(jsonRequest.toString(),ContentType.APPLICATION_JSON);httpPost.setEntity(requestEntity);// 发送登录请求HttpResponse response httpClient.execute(httpPost);// 处理登录响应获取tokenif (response.getStatusLine().getStatusCode() 200) {HttpEntity entity response.getEntity();String responseString EntityUtils.toString(entity);System.out.println(responseString);// 解析响应获取token这里假设响应是JSON格式的// 根据实际情况使用合适的JSON库进行解析String token parseTokenFromJson(responseString);System.out.println(手机号 phoneNumber 登录成功Token: token);// 将token写入txt文件writer.write(token);writer.newLine();} else {System.out.println(手机号 phoneNumber 登录失败);}}writer.close();} catch (Exception e) {e.printStackTrace();}}// 解析JSON响应获取token的方法这里只是示例具体实现需要根据实际响应格式进行解析private static String parseTokenFromJson(String json) {try {// 将JSON字符串转换为JSONObjectJSONObject jsonObject new JSONObject(json);// 从JSONObject中获取名为token的字段的值String token jsonObject.getString(data);return token;} catch (Exception e) {e.printStackTrace();return null; // 解析失败返回null或者抛出异常具体根据实际需求处理}} }先运行HmDianPingApplication,之后运行测试类可得到存储了1000个用户token的txt文件 3.3 使用jmeter进行测试 1.设置线程数为1000 2.导入tokens文件 3.设置HTTP信息头管理器 4.设置HTTP请求 注意Path为/api/voucher-order/seckill/13 13记得修改为自己的秒杀商品id 5.运行并得到结果 运行前13的商品库存为100 3.4 测试结果 Redis和数据库中库存减为0 订单数量为100 3.5 将用户登录逻辑修改回去 取消验证码检测的注释。
http://www.hkea.cn/news/14394282/

相关文章:

  • 做网站坂田手机自己免费制作app软件
  • 网站建设的意义怎么写莆田网站 建设
  • 自己网站建设的流程是什么开发公司的一般利润率2020
  • 做网站需要办什么证件wordpress链接样式设置方法
  • 阿里云中英文网站建设上市公司专利查询网站
  • 服装网站设计模板化妆品网站设计论文
  • django企业网站开发实例导航网站怎么做点击
  • 电子商务网站有哪些和网址广州哪里有网站建设
  • 网站seo优化课程个人手机版网站建设
  • 网站域名批量查询注册双井网站建设
  • asp.net做报名网站如何给异地网站做镜像
  • 电子商务网站建设合同seo招聘的关键词
  • wordpress 新闻采集站网站建设 猴王网络0成本
  • 网站ui设计包括哪些原则苏州高端网站定制
  • dede做的网站打不开wordpress淘宝采集
  • 网站建设需要什么软件有哪些东宁做木耳招工人网站
  • 网站修改dns线上免费编程课
  • 承装承修承试材料在哪个网站做制作一个网站费用
  • 网站百度收录是什么意思wordpress远程插件
  • 新建的网站可以百度推广seo是指什么岗位
  • 青岛做门户网站的建设网站需要几个文件夹
  • 深圳公明网站建设本周新闻热点10条2021
  • 海外仓网站建设大良手机网站建设
  • 备案 网站名称涉及到行业网站页面大小优化怎么做
  • 艺术设计专业灵感推荐网站品牌网站建设4a小蝌蚪
  • 郑州网站建设up188视频网站后台设计
  • 水果网站设计论文网站中的人力资源建设
  • 网站建设的报价制作网址怎么收费
  • 太原中企动力网站建设wordpress收起边栏
  • 柳市网站设计推广互联网巨头是哪几家