• 个人博客项目测试报告


    个人博客项目测试报告


    个人博客系统网址: http://124.220.51.144:8020/login.html

    0、准备工作:在 idea 社区版中需要安装一些 “csv”的插件,才能避免参数化的过程中出现莫名其妙的报错,如果是 idea 正式版可以直接略过。
    image.png
    需要安装这三个插件,在参数化 @CsvFileSource idea社区版通过提示创建一下对应的csv文件,才能读取对应的参数,没有安装这三个插件就可能读取不到参数。
    0.1、导入正确的自动化测试依赖,可能在项目中有多个版本的包,报错的时候也需要检查自己的依赖导入的版本是否一致。

    项目描述:

    ​ 个人博客系统采用前后端分离的方法来实现,该个人博客系统主要实现了注册,登录,写博客,修改博客,删除博客,退出登录,显示文章详情,显示文章列表等功能,模拟了最简单的个人博客功能;主要用的技术为:SSM,多线程,密码加盐,拦截器,Redis,Mysql,Ajax等技术。同时部署云服务器上,使用数据库来存储用户相关信息。

    一、测试用例:

    1.1、脑图

    image.png

    这里面需要设计测试用例有很多,这里只是采取了一部分核心内容开始测试,当然也可以拓展很多的测试用例,不局限于我这张图

    二、自动化功能测试用例

    T1est_ug.gif

    实际执行的测试用例:
    1、正常的登录;
    2、打开列表详情页;
    3、写博客;
    4、删除博客;
    5、退出登录;

    自动化测试的功能有很多,这里只是列出了平常大家都会用到的功能进行测试用例,可以继续拓展的。

    用到了那些方法语言测试,可以看一下的参考博客
    自动化测试参考博客:
    元素定位篇:
    https://blog.csdn.net/qq_54219272/article/details/123310772?spm=1001.2014.3001.5502
    完结篇:
    https://blog.csdn.net/qq_54219272/article/details/123338773?spm=1001.2014.3001.5502

    这是python语言,写的自动化测试,但本次测试使用的 java+JUnit

    测试代码都是大差不差,只不过 JUnit 需要加入相关的依赖和注解,代码可以借助编译器的提示进行。
    JUnit参考博客:https://blog.csdn.net/qq_54219272/article/details/133828453?spm=1001.2014.3001.5501
    Gitee自动化代码(JUnit):https://gitee.com/yuanye12123/blog_-junit-test

    自动化测试代码编写注意事项:
    1、根据脑图来进行测试用例的编写,每一个类对应一个功能;
    2、首先创建了一个初始化的类 InitAndEnd,通过static修饰静态变量全局只创建一次驱动对象,保证浏览器的打开和关闭,避免重复创建驱动对象造成的浪费。
    3、再来就是测试用例 BlogCases,继承 InitAndEnd;
    4、使用测试套件,指定执行测试用例的顺序;
    5、注意参数化注解的使用,可能idea社区版的问题有些参数化会有一些小BUG,但是大致下载上面提及准备工作就差不多了;
    6、注意添加隐式等待,需要等待页面渲染完成,不然容易报错;
    7、使用屏幕截图:方便问题的追溯和问题的解决。

    三、性能测试

    使用的是LoadRunner 进行简单性能测试,针对登录…进行简单的性能测试;
    在是实现过程中,用到了事务,插入集合点,插入检查点,参数化,打印日志,并通过设置来实现用户的并发操作

    3.1、使用 VUG 进行登录测试

    1、先创建好 VUG 项目,添加访问地址;
    image.png
    2、通过脚本的录制进行性能测试脚本的编写
    image.png
    同时再编写脚本的过程种也实现了脚本加强:

    1. 对登录操作添加事务,为了衡量服务器的性能,我们需要定义事务;
      1. 开启事务:lr_start_transaction(“loginStart”);
      2. 关闭事务:lr_end_transaction(“loginStart”, LR_AUTO);
    2. 进行了插入集合点,这是为了实现并发操作设计的集合点,是虚拟用户短暂集合,集合完毕进行放行,产生并发数;
      1. 插入集合点:lr_rendezvous(“login_rendezvous”);
    3. 插入检查点,一定注意函数只放在要检查的URL前面,不要随便再往前面放置,目的是检查服务器是否能够准确返回指定的测试对象;
      1. 插入检查点:web_reg_find(“Fail=NotFound”,“Search=All”,“SaveCount=”,“Text=2023”,LAST);
    4. 设置参数化:用户不可能都是固定的账号或者密码,需要用参数化更灵活的解决用户名及密码有多个的情况;
    5. 打印日志:是否打印出来的东西符合预期
      1. lr_log_message(“登录成功”);
      2. lr_output_message( );

    最终脚本测试通过:
    image.png

    3.2、使用Controller设计场景测试

    1、在此次测试中使用10个虚拟用户,太多防止电脑崩溃
    2、设计的场景:
    image.png
    2、场景运行结束截图:
    image.png

    3.3、生成的Analysis报告

    这是生成的总体报告,看测试报告主要是看平均值和标准偏差,标准偏差越大说明越不稳定
    image.png

    1、点击率
    显示性能测试场景中运行期间的每一秒内http向服务器发送的HTP请求数。
    image.png
    2、吞吐量
    用户一次请求和服务器之间的数据交互量,吞吐量的大小直接体现服务器的承载能力
    image.png

    3、系统资源
    a、processor Time
    CPU使用时间。被消耗的处理器时间数量,服务器专用于可接受的最大上限一般是80%~85%,也就是常见的CPU使用率。
    b、Available Mbytes
    可用的物理内存。
    image.png

  • 相关阅读:
    基于google glog库实现log信息存储
    ROS+Gazebo+PX4(关系,配置资料)
    同城售后系统退款业务重构心得
    20分钟快速入门SQL
    【论文阅读】RadHAR:通过毫米波雷达生成的点云识别人类活动
    面试官:我们简单聊一下kafka的一些东西吧。
    Spring Boot 9 :详细描述Spring Boot + Vue项目部署过程:Centos为例(重点)
    金蝶EAS本地WebService发布
    Flutter extended_image库设置内存缓存区大小与缓存图片数
    spring源码解析
  • 原文地址:https://blog.csdn.net/qq_54219272/article/details/134021701