项目总结57:使用阿里云性能测试-电商系统并发测试

第一步:部署测试环境

  1-单独部署测试服务,是为了尽量不影响正式环境,并尽量保证硬件和软件上,测试环境和正式环境一致

  2-目前一共4台服务器:一台阿里云SLB服务器,一台RDS数据库服务器,两台ECS服务器(tomcat、redis、kafka,mongodb君部署在ECS服务器)

  3-测试环境(完全模拟真实环境):

    数据库:在RDS重新创建新的数据库,命名:xuegao_rds_test;数据库配置信息

    Redis:在从服务器创建新的Redis客户端,端口号:6379; redis版本如下

[[email protected] bin]# redis-cli --version
redis-cli 3.2.9

    Kafka:在从服务器部署kafka; kafka在Linux安装参考:https://www.cnblogs.com/wobuchifanqie/p/11687234.html

    Tomcat服务:在两台正式服务器部署一套完全一样的项目服务,端口号8088;阿里云ECS服务器配置如下:

第二步:确认测试内容
  1-测试接口,如下

  2-用户数量: 5000小程序用户;500APP用户

  3-测试流程:10分钟内,5000个线程,5000粉丝和500店主陆续登陆小程序或APP,陆续请求接口;预计10分钟内接口请求数量5000*37=185000次????

第三步:编写Jmeter测试脚本并本地测试

  1-Jmeter测试脚本编写可参考:https://www.cnblogs.com/wobuchifanqie/p/12070734.html

  2-考虑模拟真实用户数据,我们将正式数据库同步一份到测试数据库,并通过Jemeter CSV 配置文件提前准备号用户Token以及相关商品ID等信息;Jemter相关目录如下

  

第四步:上传脚本到阿里云性能测试进行测试(具体操作可以参考阿里云文档)

第五步:查看测试报告

第六步:分析测试报告(以下分析是基于多次测试的结果)

  分析结果报告以及相关失败的具体原因,发现:

    1-一部分错误是因为接口返回的特殊情况,比如商品不存在,也被是为错误(其实是接口容错处理);针对这类问题,进行了响应断言设置,默认为成功;

    2-出现Redis的RedisConnectionFailureException,即连接失败,继续跟进问题,发现是因为Redis连接超时问题(项目对几乎全部的查询接口做了缓存);针对这类问题,做了两个优化处理:

      1-优化Redis配置,增加Redis最大连接数等相关参数;

      2-考虑到在ECS服务器部署Redis,硬件性能会有瓶颈;我们购买阿里云数据Redis,Redis数据库配置如下:

第七步:优化后重新测试(同时增加了测试时时长5min->20min),结果如下

  1-分析数据,错误率由原来的1.12%降到0.02,说明前面的优化是有效果的;

几个问题说明

  1-Jemeter有个比较恶心的问题,不能在URL后面和body后面同时加请求参数;导致项目部分接口无法参与测试

  2-类似购物车和提交订单接口,是需要根据实际情况提供重写的测试接口(逻辑和正式接口一样,请求方式或参数稍有区别);

  

原文地址:https://www.cnblogs.com/wobuchifanqie/p/12336439.html

时间: 2024-10-09 15:45:06

项目总结57:使用阿里云性能测试-电商系统并发测试的相关文章

[转帖]中信银行信用卡业务数据库实现国产替换,湖北银行新核心系统项目正式验收,阿里云与MongoDB达成战略合作

中信银行信用卡业务数据库实现国产替换,湖北银行新核心系统项目正式验收,阿里云与MongoDB达成战略合作 http://www.itpub.net/2019/10/31/3942/ 中信银行 goldenDB 湖北银行 达梦数据库 中信银行信用卡业务数据库实现国产替换 10月31日,由IT168旗下ChinaUnix社区主办的第十一届中国系统架构师大会(SACC2019)在北京召开. 会上,中信银行软件开发中心/技术平台开发处副处长刘文涛不仅分享了中信银行IT架构的转型探索与实践,还宣布基于完全

电商系统架构总结(一)

最近主导了一个电商系统的设计开发过程,包括前期分析设计,框架搭建,功能模块的具体开发(主要负责在线支付部分),成功上线后的部署维护,运维策略等等全过程. 虽然这个系统不是什么超大型的电商系统 数亿计的并发,但团队里的主要成员都有多年的开发经验以及电商的经验,系统设计方面还是麻雀虽小,但五脏俱全. 系统客户端有 ios , android,H5,微信小程序,后台方面用.net web api + sql server,图片资源的读写使用阿里云,缓存则自己搭建redis,支付方面既有使用一些第三方支

如何来合理解决电商系统数据承载过大的问题呢?

原文地址:http://whosmall.com/?post=431 初创企业在发展过程中,一般不会遇到类似问题,但是随着业务量的增加,特别是电商系统,由于每日的订单数量过多,导致数据库的承载量过大,更换服务器的成本很大,所以如何来合理解决电商系统数据承载过大的问题呢? 1.从初始阶段,这应该是属于系统架构师应该考虑进去的事情,所以这项工作应该由架构师来完成: 2.如果没有合理的架构,那么在需要解决这个问题的时候,可以通过数据库分库,分表.切片的方式来进行.(再次强调这是个技术问题,产品不背锅)

(1)dotnet开源电商系统-brnshop&brnMall 和老外开发的nopCommerce(dotnet两套电商来PK--第一篇)

一直想做电商软件,但是实在不想学PHP了,所以前后关注了这两个开源电商系统.一个是国人出品的,一个据说是俄罗斯人写得(不知道对不对).目前两个开源软件都在学习了解中,以下的博文可能会涉及到这两套系统,我希望能对比进行学习,能互相借鉴和补充. brnshop :http://www.cnblogs.com/wheretime/p/3793979.html  (入门篇:BrnShop开源网上商城第一讲:架构设计) nopCommerce:http://www.cnblogs.com/babieton

幂等和高并发在电商系统中的使用

在Java web项目开发中,经常会听到在做订单系统中生成订单的时候,要做幂等性控制和并发控制,特对此部分内容作出总结,在高并发场景下,代码层面需要实现并发控制:但是幂等性,其实更多的是系统的接口对外的一种承诺,承诺一次请求和多次请求会返回同样的数据.关于幂等性将分别从高等代数中的幂等性.HTTP中的幂等性和订单生成系统中的幂等性阐述:并发性控制则提供了分布式锁等方式来对并发场景进行代码实现. 一.幂等性 idempotence  ['a?d?mpo?t?ns] 1.高等代数中关于幂等idemp

Vue全家桶实战 从零独立开发企业级电商系统

Vue全家桶实战 从零独立开发企业级电商系统(免费升级Vue3.0)现阶段,电商系统随处可见,具有很大市场潜力:同时因为商城系统复杂,涉及到丰富的知识点,如果能进行电商系统的开发,其它各类型的前端系统也能掌握.本课程以Vue全家桶作为主要的技术体系,模拟小米商城,带大家从0开始开发网页和交互功能.你能进行完整的项目架构.体会页面开发的全流程.学习丰富的技术栈和各类组件知识,还能了解Git.动画.开发调试等方面的知识.同时项目本身具有很强的实用性,稍作修改,便能"为我所用".相信此课程能

Vue从零独立开发企业级电商系统

Vue全家桶实战 从零独立开发企业级电商系统 ==学习视频-资料整理. 密码:7zxc== 学习目标1: Node环境安装 讲解Node环境安装和配置,以及Node版本如何做卸载和升级 Node环境安装 Node升降级 学习目标2: Git安装和配置 介绍Git软件的安装和配置,其次对Git命令做详细的操作演示. Git的安装 Git配置 Git配置SSH公钥 VSCode操作Git Git常用命令 学习目标3: Vue Cli4.0安装和使用 首次对Vue脚手架4.0版本做安装和演示,并对可视

程序员如何开发独立电商系统?

当社会发展进入"互联网+"时代,传统的PC电商已经不能满足电商运营者的需求,打造独立的移动电商系统是必然的趋势. 随着移动电商热度的不断增加,许多的商家是开始慢慢的加入到移动电商的行列当中,那么你们知道设计开发移动电商系统的吗?延誉电商为您答疑解惑! 1.规划阶段 前规划阶段的主要任务是进行建立数据库的必要性及可行性分析,确定数据库系统在组织中和信息系统中的地位,以及各个数据库之间的联系.规划工作完成后应写出详尽的可行性分析报告和数据库系统规划纲要.可行性分析报告的主要内容包括信息范围

电商系统架构——系统鸟瞰图

在看到图(一)这样的图,我们是否有一种探究系统的冲动?这样一个花花绿绿的界面,背后隐藏着什么样的奥秘!用户输入某个域名的时候,比如www.taobao.com的时候,页面是如何展示的,用户在搜索框搜宝贝的时候,系统又是如何处理的,用户在参加秒杀活动的时候,系统又是如何处理的.经过两年多的互联网从业经验,以及自己的思考,在这里我就抛砖引玉对电商系统架构进行探究,探究系统是如何设计的,以及设计这个系统的各种权衡. 图(一) 隐藏在花花绿绿的界面之后,是一个庞大复杂的系统,图(二)是这个系统的鸟瞰图.