项目性能测试报告模板


项目性能测试报告

01-测试目的

主要是让开发者对hero_mall项目的性能负载和容量有个准确的认知。同时,协助技术管理者更好的管理业务系统性能质量,科学评估业务系统的负荷,拒绝盲目上线。

02-测试工具

(图略)

03-测试环境

3.1 环境

指标 参数
机器 4C8G
集群规模 单机
hero_mall_one版本 1.0
数据库 4C8G

3.1 设置启动参数

export JAVA_HOME
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib


export SERVER_NAME="hero_web"
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=`cd $(dirname $0)/.; pwd`
export DEFAULT_SEARCH_LOCATIONS="classpath:/,classpath:/config/,file:./,file:./config/"
export CUSTOM_SEARCH_LOCATIONS=${DEFAULT_SEARCH_LOCATIONS},file:${BASE_DIR}/conf/

JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
JAVA_OPT="${JAVA_OPT} -jar ${BASE_DIR}/${SERVER_NAME}*.jar"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"

JAVA_OPT="${JAVA_OPT} --spring.config.location=${CUSTOM_SEARCH_LOCATIONS}"
if [ ! -d "${BASE_DIR}/logs" ]; then
  mkdir ${BASE_DIR}/logs
fi
echo "$JAVA ${JAVA_OPT}"

if [ ! -f "${BASE_DIR}/logs/${SERVER_NAME}.out" ]; then
  touch "${BASE_DIR}/logs/${SERVER_NAME}.out"
fi

echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/${SERVER_NAME}.out 2>&1 &
nohup $JAVA ${JAVA_OPT} hero_web.hero_web >> ${BASE_DIR}/logs/${SERVER_NAME}.out 2>&1 &
echo "server is starting,you can check the ${BASE_DIR}/logs/${SERVER_NAME}.out"

04-测试场景

测试场景一般情况下是都是最重要接口:验证hero_mall服务获取商品信息接口在不同并发规模的表现

情况01-模拟低延时场景,用户访问接口并发逐渐增加的过程。接口的响应时间为20ms,线程梯度:5、10、15、20、25、30、35、40个线程,5000次;

  • 时间设置:Ramp-up period(inseconds)的值设为对应线程数
  • 测试总时长:约等于20ms x 5000次 x 8 = 800s = 13分

情况02-模拟高延时场景,用户访问接口并发逐渐增加的过程。接口的响应时间为500ms,线程梯度:100、200、300、400、500、600、700、800个线程,200次;

  • 时间设置:Ramp-up period(inseconds)的值设为对应线程数的1/10;
  • 测试总时长:约等于500ms x 200次 x 8 = 800s = 13分

05-核心接口的测试结果

一、商品详情页涉及到的接口

1、获取商品信息接口

验证hero_mall服务获取商品信息接口能力性能。目标峰值TPS:10000,P99响应时间:300ms

Active Threads:注意压力机的活动线程数并不等同于在线用数中,并发的用户数。压力活动线程数是用来模拟用户发出并发请求的操作。

  • 压力机-活动线程数 =模拟=> 系统并发用户数
  • 系统并发用户数 =不等于=> 压力机-活动线程数

TPS、RT

聚合报告(图略)

JMeterDashboard(图略)

二、支付详情页涉及到的接口

1、公众号静默授权获取静默授权地址(get)

目标峰值TPS:5000、P99响应时间:300ms

地址: https://open2.hero.com/wechat/open/redirect/url

(图略)

公众号静默授权获取静默授权地址 http://yapi.hero.com/project/582/interface/api/35768

2、静默授权获取openid(get)

目标峰值TPS:10000、P99响应时间:300ms

地址:https://open2.hero.com/wechat/open/authorize?code=${params.code}&state=kkb&appId=appid

授权获取用户信息 http://yapi.hero.com/project/582/interface/api/35782

3、创建订单接口

目标峰值TPS:5000、P99响应时间:300ms

地址:https://open2.hero.comvipcourse/order

创建订单 http://yapi.hero.com/project/61/interface/api/4003

4、统一支付接口

目标峰值TPS:2666、P99响应时间:300ms

地址:https://open2.hero.com/vip/payorder/params.openid/{params.openid}/params.openid/{params.orderNo}/params.payType{params.payType}params.payType{userId}${emi}

获取支付链接(创建支付流水) http://yapi.hero.com/project/61/interface/api/4007

5、订单查询(详情)接口

目标峰值TPS:36048,P99响应时间:300ms

地址:https://open2.hero.comvipcourse/order/{orderNo}

订单详情 http://yapi.hero.com/project/382/interface/api/5929

三、新MOS核心API压测

四、红包接口压测

06-测试结论

hero_web性能测试是针对重点功能,单机单节点服务进行压测,可以看到各个接口容量。本测试供给大家作为参考,如有不足或偏差,请指正!如果对性能有其他需求,可以进行集群扩容。例如:3节点、10节点、100节点…


文章作者: Gustavo
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 Gustavo !
评论
  目录