• 【LoadRunner】博客笔记项目 性能测试报告


    文章目录

    • 前言
    • 一、博客笔记项目性能测试介绍
    • 二、编写性能测试脚本(VUG)
    •       2.1 测试脚本编写步骤
    •       2.2 脚本总代码和结果分析
    • 三、创建测试场景(Controller)
    •       3.1 测试场景创建实现步骤
    • 四、生成测试报告(Analysis)
    •       4.1 测试报告
    •       4.2 报表分析
    • 五、遇到的问题
    • 总结


    前言


    一、博客笔记项目性能测试介绍

    使用loadrunner进行简单性能测试:

    (1)测试功能:

    针对登录、编写并发布博客以及删除博客、注销等功能进行简单的性能测试。

    (2)测试进阶:
    然后在实现的过程中,插入集合点以及事务等,并通过设置来实现用户的并发操作。


    博客笔记页面展示:
    博客登录页:

    博客列表页:

    博客详情页:


    二、编写性能测试脚本(VUG)

    2.1 测试脚本编写步骤

    1、创建项目

    由于我们测试的博客系统是一个Web项目,因此需要创建一个Web性能测试脚本。


    2、代码编写

    (1)访问博客笔记系统登录页面实现:
    使用web_url 函数访问到博客笔记系统登录页面,为后续操作做准备。


    (2)输入登录账号和密码进入博客详情页

    使用web_submit_form函数访问到博客笔记系统详情页面

    使用form函数是因为登录页面中NetWork,本web是使用form表单形式进行提交请求的。


    (3)性能测试脚本的增强操作

    1.添加事务

    lr_start_transaction 开启事务
    lr_end_transaction 结束事务

    2.添加集合点:

    lr_rendezvous 集合点设置(若存在事务则在开启前面进行设置)


    3.添加检查点:

    在页面中查找某元素是否存在(如避免用户的越权行为)
    web_reg_find (注意:也是加在前面的,但是如果存在事务则可以是在开启事务之后)


    2.2 脚本总代码和结果分析

    代码总结:

    1. Action()
    2. {
    3. //开始事务
    4. lr_start_transaction("index_trans");
    5. //进入博客笔记登录页
    6. web_url("index",
    7. "URL=http://81.70.49.37:8080/BlogSystem/blog_login.html",
    8. "TargetFrame=",
    9. "Resource=0",
    10. "Referer=",
    11. LAST);
    12. //插入登录集合点
    13. lr_rendezvous("login_rendezvous");
    14. //设置登录事务
    15. lr_start_transaction("login_trans");
    16. //插入登录后检查点
    17. web_reg_find("Text=注销用户",
    18. LAST);
    19. //登录后进入博客笔记详情页
    20. web_submit_form("login",
    21. ITEMDATA,
    22. "Name=username", "Value=zhangsan", ENDITEM,
    23. "Name=password", "Value=123", ENDITEM,
    24. LAST);
    25. //结束事务
    26. lr_end_transaction("login_trans", LR_AUTO);
    27. lr_end_transaction("index_trans", LR_AUTO);
    28. return 0;
    29. }

    执行结果和分析:


    测试脚本通过:


    三、创建测试场景(Controller)

    3.1 测试场景创建实现步骤

    步骤(1)设置虚拟用户并发数量

    设置5个虚拟用户,防止电脑崩溃


    步骤(2)在Controller中设置场景

    1.Action  type lnitialize

    设置每隔多久初始化一次


    2.Action  type  Start Vusers

    没10s上台2个用户。


    3.Action  type  Duration

    总持续运行时间3分钟


    4.Action  type  Stop  Vusers

    每8s退出两个用户


    步骤(3)开始进行运行,性能测试开始

    运行结果图:


    四、生成测试报告(Analysis)

    4.1 测试报告

    测试报告图示:


    4.2 报表分析

    (1)点击率报表:


    (2)吞吐量报表:


    (3)平均事务响应时间:


    分析结果总结:
    ① 剩余的物理内存近70%,即使用了近30%的内存,对于简单的博客系统的核心功能来说还是较高的内存使用,还有内存优化的空间。
    ② 当点击率较大时CPU使用也是达到了一个较高的点,CPU利用率较高。
    ③ 总之,该性能还有优化的空间。


    五、遇到的问题

    问题1:

    在VUG中编写脚本时,设置检查点运行一直出错,not found。
    1)原因:用户名、密码中因为包含中文,中文会被转码,所以在会一直失败。此时登录直接是失败的,并没有跳转到list列表页面。
    2)解决方法:使用Xshell在数据库中新增了两条用户数据,全是非中文字符;然后再VUG中修改变量列表,此时重新进行测试,发现运行通过。


    问题2:

    如果直接设置访问list页面的url,并且在该请求之前设置检查点,此时是可以检查到列表页面的元素的。此时明明没有进行登录,但是为什么直接访问列表的url是可以拿到该页面的元素的呢?
    解析:手动请求的haul就相当于是获取资源,所以就能够拿到页面,也就能够获取到页面信息。使用postman进行直接访问测试,发现是可以拿到该页面的相关元素的。

    总结

  • 相关阅读:
    密码学之安全模型总结
    全栈最全性能测试理论-总结
    队列题目:用栈实现队列
    驱动开发:摘除InlineHook内核钩子
    IM即时通讯开发之WebSocket断网重连更快的方法
    python+vue+elementui大学生假期志愿者公益网站django
    【chat】4:ubutnu20.04 安装redis
    更新UpdatePanel外部控件
    用机器学习识别不断变化的股市状况—隐马尔可夫模型(HMM)股票指数预测实战
    Qt实现sdp组包,sdp策略介绍
  • 原文地址:https://blog.csdn.net/qq_64861334/article/details/140440380