• 都2022年了 你还不了解什么是性能测试?


    嗨,对软件测试感兴趣的小伙伴们,想必你们都想了解为什么性能测试工程师的月薪更高吧?下面,就让我为大家细细道来~

    首先,软件测试主要分为:功能测试、性能测试、自动化测试、易用性测试、兼容性测试、可靠性测试六大类。

    其次,各类测试工程师的平均薪资各不相同。根据第三方平台《职友集》就业数据分析,上海逾万名软件测试工程师中,平均薪资为10400元,其中功能测试工程师平均薪资11950元,性能测试工程师平均薪资高达14970元。比软件开发工程师平均薪资14040元,还要高出近千元。

    下面,就让我们一起来学习性能测试的相关知识吧~

    1、性能测试内容

    1)负载测试(load test):对于分布式网络,测试不同用户数量来测试系统的反应,主要关注性能指标,系统不同表现。

    图片

    2)压力测试(stress testing):高压状态下多用户高并发测试(30万-50万),主要关注系统是怎么崩溃的。(内存泄漏,cpu无响应,数据库无反应,网络堵塞)
    3)容量测试(volumn testing):系统最大支撑的相关数量,数据库最大数据数量,用户数量。

    2、为什么要做性能测试?

    1)目前绝大多数应用都是基于网络的分布式应用,我们无法知道用户数量,用户场景的不确定性,导致系统测试时,不仅仅是功能,业务逻辑,接口测试,还要测试系统性能。一个用户没问题,但是用户一旦多了就可能出现各种各样的问题,所以需要进行系统性能测试。
    2)用户数量增加,系统负债增加,进行系统性能测试,知道系统承受的并发用户数量,带宽是否够用,cpu是否够用,内存是否够用,硬盘速度是否跟得上。从服务端来看,测试服务器是否能承载用户多并发,系统是否稳定,从用户角度看响应时间速度。

    3、性能测试评价指标

    1)响应时间(response time):从用户视角评价系统的响应速度,通常响应的时间的经验值:2s流畅,5s可用,10s较慢。

    图片

    2)吞吐量/率:硬盘IO(读写),网络IO(上行下行带宽),cupIO,服务器处理能力,客户端打开页面的数量。

    3)事务处理能力(TPS tansaction per second):打开页面,登陆服务器,实现消息发送等等用户的某一动作就被称为事物。

    4、性能测试关注点(也是软件测试的关注点)

    1)软件测试的作用和价值:两个方面产品和用户。产品角度:在研发过程中尽早的发现问题,提高软件质量,确保产品交互,功能完善,稳定可靠。用户角度:关注用户体验,操作,界面,性能,尽可能想办法提升用户体验,持续改善。

    2)性能测试的关注点:(三层架构,多方面制约,采用集群,云计算,虚拟化)

    响应时间快慢,服务器端的处理速度;

    服务器端的使用情况;

    数据库端的资源使用情况;

    最大用户访问数量;

    同时处理最大业务数量;

    考察系统能否支撑7x24小时运转;

    内存资源、线程资源能否正常回收;

    代码,算法,sql语句设计是否合理;

    整个系统的稳定性,可恢复性。

    5、性能测试的核心原理及开发测试工具

    性能测试的核心原理及开发测试工具,主要也是基于前两点:
    1)基于协议(前端后端通信机制)、界面(决定和前端交互)和代码(后端)。基于网络的分布式架构:基于网络协议去模拟用户发送请求。
    2)多线程:模拟多线程操作、多人同时操作、模拟大负载量(功能测试在于用以测试功能)。
    3)模拟真实场景:真实的网络环境,用户操作时间不确定性,操作不确定,得出的数据是准确的,场景不对,数据也不一定可用。

    6、代码实现性能测试

    针对某一功能做性能测试,论坛的登陆以及发帖(post协议,多线程这两点);登陆操作,发帖操作(涉及协议),使用多线程同时操作。

    图片

    7、loadrunner使用(协议脚本,多线程)

    四个主要部件:

    1)vuser generator (虚拟用户生成器)开发性能测试脚本;

    2)controller 提供多线程并发等操作;

    3)ananlysis 结果分析;

    4)load generator 负载生成器(controller 里面的一个主键)。
    举个例子:

    A、新建一个脚本:

    图片

    B、进入界面,点击start 录制一段脚本:

    图片

    C、internet application 指的是b-s 架构,win 32 是指c-s 架构,默认是录制到action,勾选recond表示立即开始。

    图片

    TIPS:

    1)可以手写,可以录制:

    点击web_url,使用get请求;

    点击web_submit_data,使用post请求。

    2)解决乱码:

    开始时:tool > advaced > support charset // utf-8 或者本机编码;

    运行时:vuser > preferences > option > convert from/to utf-8。

    3)编码的差别:

    国标GB-x ,2byte-16bit , 2^16种组合,只对中文进行编码。

    utf-8 :3byte = 24bit 2^24种组合 ,对全世界的文字进行统一的编码。
    ascii码:一个字节 (2^8=128)

    最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

    学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)

    喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

  • 相关阅读:
    application.yml与bootstrap.yml的区别
    [附源码]Python计算机毕业设计Django校友社交系统
    list 转map,计算相同key值下对象数量的和
    计算机网络——计算机网络体系结构(4/4)-计算机网络体系结构中的专用术语(实体、协议、服务,三次握手‘三报文握手’、数据包术语)
    【运维知识高级篇】超详细的Jenkins教程4(参数化构建+脚本传参+代码秒级发布+秒级回滚)
    前端食堂技术周刊第 62 期:11 月登陆浏览器的新特性、VueConf 2022、第 93 次 TC39 会议、TS 挑战
    不经意传输扩展(OTE)-不经意伪随机函数(OPRF)-隐私集合求交(PSI)
    字节面经总结
    盘一盘那些年我们使用的Java
    springboot 点滴(2)springboot AOP
  • 原文地址:https://blog.csdn.net/m0_67695717/article/details/125444942