性能测试涉及的知识点非常多,包括:
性能测试的需求分析:客户需求、新系统性能验证、旧系统扩容、优化系统瓶颈等;
性能测试工具的选型:商业工具LoadRunner、开源工具JMeter、Locust,或者自研性能工具;
性能测试环境准备:软件环境、硬件环境、网络环境;
性能测试业务分析:针对哪些业务做性能测试;
性能测试数据准备:准备性能测试所需要的基础数据;
性能测试执行策略:不同业务的用户分配比例,运行时长、思考时间、集合点的设置等;
性能测试监控:中间件的监控、数据库服务器的监控、系统服务器的监控;
性能测试分析与调优:分析整个系统各个部分的监控结果;对程序处理过程优化,程序算法优化,中间件各种配置参数的调整,数据库SQL语句、索引、表结构的优化;
性能测试准备
性能测试目的:发布会签到系统、新系统能力验证;
业务分析:根据发布会签到系统的应用场景,主要包括发布会管理页面、嘉宾管理页面、嘉宾查询功能和发布会签到功能;
性能测试环境:
测试数据准备:
发布会数据:10条
嘉宾数据:3000条
待签到嘉宾:3000条
测试数据构造:
执行SQL语句,分别使sign_event、sign_guest两张表的create_time字段在插入数据时直接取当前时间:
通过Python脚本批量生成3000条插入数据的SQL语句:
将生成好的SQL语句,在SQL命令行中执行,生成测试数据。
编写性能测试脚本
使用Locust编写性能测试脚本:locustfile.py
通过@task()装饰的方法为一个事务,方法的参数用于指定该行为的执行权重。参数越大,每次被虚拟用户只需的概率越高,如果不设置,则默认为1,发布会管理页、嘉宾管理页和嘉宾搜索功能的执行权重比例为2:2:1。
min_wait、max_wait用于指定用户执行事务之间暂停的下限和上限,即3-6秒;
每个事务的请求路径、是GET请求还是POST请求、是否需要传参数等,都可以根据Django项目中对视图函数的定义来决定,调用方法与Requests库基本相同。
执行性能测试
启动性能测试:
>locust-flocustfile.py--host=http://127.0.0.1:8000
通过浏览器访问Locust工具:http://127.0.0.1:8000
Number of users to simulate:设置模拟用户数为100
Hatch rate(users spawned/second):每秒产生(启动)的用户数为10,即每秒启动10个模拟用户。
单击“Start swarming”按钮,运行性能测试,单击“New test”按钮,重新设置虚拟用户数并允许性能测试。
领取专属 10元无门槛券
私享最新 技术干货