性能测试四十六:JavaMall项目需求调研和环境部署

javamall项目
一个完整的电子商务网站,包含浏览、搜索、支付、购物车、下单等功能

由于此项目为商业性的,所以部署的时候一检测到时liunx系统就会无法访问,所以需先在windows下部署(要求jdk1.7),做完配置后,再拷到liunx下

项目流程
1、需求调研
  测试范围:订单流程、搜索
  系统架构:tomcat+mysql
  业务逻辑 & 数据流向:略
  测试数据量:商品数量:10w,用户数据:1w
  外部依赖:有(支付),但是不需要测
  预期指标:
    1、业务监控系统,找到业务量峰值,除以机器数量,计算出单机系统每秒的业务量 * 性能冗余量(30%-50%)
    2、访问日志统计接口调用量。或者数据库表中查询每天的写入数据量 * 性能冗余量(30%-50%)

    分析日志里面调用次数前十的接口:

    命令:awk '{print $7}' access.log | sort | uniq -c | sort -rn | head -10:

    {print $7}:先用空格对数据进行分割,然后找到第七位

    sort:按照接口的名称进行排序

    uniq -c:去重、再排序

    sort -rn:再排序的时候按统计出来的访问次数倒序排序

    head -10:打印前十行

    3、28原则,只知道每天大概的业务总量,(每天的总业务量*80%) / (24小时*3600 *20%)/ 部署机器数量 / 性能冗余量(30%-50%) ,如,一天有10000的业务量,则认为有8000的业务量发生在24*3600*20%=17280秒内,则tps=8000/17280*机器数量*(30%--50%)

  业务比例(混合场景):
    下单:搜索=1:3

2、javamall项目环境部署

  1,新建数据库javamall,导入javamall.sql

把项目解压到tomcat/webapps下

  2,config目录下的jdbc.properties文件、eop.properties文件里的各种目录设置,注意,windows下目录为\\,如:D:\\test\\abc;Linux下为/,如/export/servers/
 

jdbc文件:

eop文件:

 

 

  3,启动tomcat,浏览器访问http://localhost:8080/javamall/

注册有一个账号,看和数据库有没有连通:

3、脚本编写
  1),登录验证码的常见解决思路:
    a.让开发提供一个万能的验证码,每次校验都可以通过
    b.让开发在测试环境中去掉验证码
    c.使用验证码识别工具,在脚本中自动识别验证码,缺点是识别率不太高,容易出错

  2),下单场景:首页-登录-加购物车-下单
    搜索场景:搜索


4、构造数据
先构造用户数据:es_member表
再构造可下单的商品数据
a> goods表新增一条数据
b> product表新增一条数据,对应一个goods
c> 库存表新增一条数据,对应goods和product
d> 获取数据库上一次的自增id函数:LAST_INSERT_ID();


5、执行压测,寻找各接口tps拐点

6、服务器监控
CPU、内存、磁盘、网络、JVM、线程、数据库

7、测试报告

猜你喜欢

转载自www.cnblogs.com/zhongyehai/p/10339761.html
今日推荐