性能测试实战30讲
高楼
前HP高级性能专家,7DGroup创始人
立即订阅
3573 人已学习
课程目录
已更新 9 讲 / 共 30 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词丨“老板,之前咱TPS是100,我优化完是10000”
免费
第一模块:性能测试基础篇 (8讲)
01丨性能综述:性能测试的概念到底是什么?
02丨性能综述:TPS和响应时间之间是什么关系?
03丨性能综述:怎么理解TPS、QPS、RT、吞吐量这些性能指标?
04丨JMeter和LoadRunner:要知道工具仅仅只是工具
05丨指标关系:你知道并发用户数应该怎么算吗?
06丨倾囊相授:我毕生所学的性能分析思路都在这里了
免费
07丨性能测试工具:如何录制脚本?
08丨案例: 手把手教你编写最简单的性能脚本
性能测试实战30讲
登录|注册

07丨性能测试工具:如何录制脚本?

高楼 2019-12-30
对于一个性能测试工具来说,如果能实现以下几大功能,那么就基本上就满足了性能测试工具的功能。
录制或编写脚本功能
参数化功能
关联功能
场景功能
报告生成功能
但是除此以外,在工作的细节上还有更多要求,就要看工具的实施能力了。
有很多性能测试工程师希望工具能做得非常全面,又人性化,而纵观当前的性能工具,真正能够做到傻瓜式录制完脚本,自动设置好参数化、关联、场景,直接产出结果的工具是没有的。不管是云性能测试平台,还是分布式性能测试工具(当然性能测试工具几乎全部具有分布式能力),都需要性能测试人员来定义参数化数据、设置关联、配置场景。
因此,在性能测试的过程中,对工具的配置就成为了性能测试工程师的基本能力。
今天,我们就来看下在性能测试工具中,如何录制脚本。今天的文章有些特殊,可能是专栏中少有的,有详细操作的文章。

性能工具的脚本能力

性能测试工具的脚本编写能力分为两类,一个是录制,另一个是手工编写。
现在市场上的性能测试工具虽然支持录制功能,但大部分也只是支持 HTTP 协议。在我们熟知的工具中,也只有 LoadRunner 支持更多协议的录制能力。不过幸好,现在我们所面对的应用大部分是 HTTP 协议的应用。
对手工编写脚本的部分,因为大部分都取决于业务场景,所以很难提出共性。如果有人提出针对性的场景,我们再做相应的示例就行。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《性能测试实战30讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(9)

  • @zzw
    第一个问题:代理录制的逻辑是什么吗?

    你也许听过这样一句至理名言:“计算机科学领域里的任何问题,都可以通过引入一个中间层来解决”。TCP/IP 协议栈是这样,而代理也是这样。
    所谓的代理(Proxy)是 HTTP 协议中请求方和应答方中间的一个环节。既可以转发客户端的请求,也可以转发服务器的应答。
    代理常见种类:匿名代理、透明代理、正向代理、反向代理.
    代理可以做的事:负载均衡、内容缓存、安全防护、数据处理。

    此处简单理解 JMeter 录制脚本则通过代理是通过转发数据包并拦截上下行的数据解析生成脚本,但录制出来的脚本都是原始的 http 请求,并没有经过适当的封装,所以录制功能比较弱。


    第二个问题:当访问网页时,为什么第一个请求至关重要?

    实际上,对浏览器来说,他们做的事情,就是把一个 URL 变成一个屏幕上显示的网页。这个过程是这样的:
    1.浏览器首先使用 HTTP 协议或者 HTTPS 协议,向服务端请求页面;
    2.把请求回来的 HTML 代码经过解析,构建成 DOM 树;
    3.计算 DOM 树上的 CSS 属性;
    4.最后根据 CSS 属性对元素逐个进行渲染,得到内存中的位图;
    5.一个可选的步骤是对位图进行合成,这会极大地增加后续绘制的速度;
    6.合成之后,再绘制到界面上。

    简单理解浏览器的工作原理就很容易回答这个问题了,第一次请求后需要构建 Dom 树(内存中的数据结构),而这棵 DOM 树其实就是前端程序的业务状态。

    作者回复: 理解的非常细节了。
    第一个请求是创建DOM树的,没有它,后面的请求都没有地方放了。

    2019-12-31
    1
  • 月亮和六便士
    上一篇与这一篇:姚明与郭敬明的差距

    作者回复: 哈哈,总要有基础的部分。
    前面就有人说我为什么不讲点简单的。
    后面我们再回到姚明好不好?

    2019-12-30
    1
  • LensAclrtn
    1. 代理录制的逻辑是什么?

    不管是在本地代理还是远程代理, 都是通过代理的设置,在客户端和服务端之间插入一个中间件,中间件接手客户端的请求并转发到服务端.
    说白了就是端口映射, 也就是老师文章里说的Port mapping

    另外, 端口映射工作在传输层,重定向工作在应用层, 他们是两个东西

    不知道我这么理解有没有问题?

    2. 访问网页时,为什么第一个请求至关重要?
    第一个请求如果都有问题,那后面就算有请求也没有再分析跟踪的必要来.

    作者回复: 两个问题理解的都没有问题。让我都无言以对了。

    2019-12-30
    1
  • buffalo
    这一篇很实用,最近听高老师的段子有种追美剧的感觉😄 对locust很有兴趣,不知道后面是否会有涉及。个人感觉如果是python平台的话locust很容易使用,而且方便将性能测试用例自动调度执行插入CI环节做回归验证。使用起来与Jmeter有些不同,更方便对已有测试用例资产的重用

    作者回复: 从排名上看这个工具还是市场不大,所以没打算讲。
    其实一开始我连工具都没打算讲。哈。

    2019-12-31
  • 土耳其小土豆
    录制的原理是客户端与服务端交互的时候,截取服务端的数据并保存
    2019-12-30
  • 土耳其小土豆
    不知道录制的原理,但是学会了jmeter的录制,LR的录制以前用过,谢谢高老师分享
    2019-12-30
  • 律飛
    访问网页时,第一个请求是页面,进行DNS解析,建立TCP连接,发起Http网页搜索,后续请求才能顺利的执行。如果第一个请求失败,就没有后续请求,就像先遣部队没有打通道路,后续大部队就不能抵达战场一样,所以第一个请求至关重要。

    作者回复: 这么说也不是不可以。哈。

    2019-12-30
  • 律飛
    本节课我看了几遍,不是老师讲得不好,而是本人没接触过Jmeter、Loadrunner工具,没有对话能力呀!几个月前,用华为的PTS做了几个简单场景的压力测试,主要是利用Fiddle先抓包分析,按照PTS要求编制脚本,属于手工编制的脚本。PTS也有脚本录制功能,因为当时有其他工作,本职也不是测试,所以没有深入去研究。
    代理录制就是通过测试工具代理录制功能,在浏览器与服务器之间充当第三方代理,从而自动获取并记录交互信息,为最终测试脚本生成提供快捷有效的基础和依据,集成了手工编制测试脚本中的抓包软件信息获取、分析、编制脚本几个功能。

    作者回复: 那要学习性能测试就得去练工具的使用了。

    另外,PTS好像是阿里的。

    2019-12-30
    1
  • 简凡
    1、代理录制的逻辑是什么?
    --- 请求响应的时候,不是直接到目的地,而是经过代理服务器,这时代理服务就可以拿到对应的请求和结果了;
    2、访问网页时,为什么第一个请求至关重要?
    --- 在录制的时候,有时是只录制第一个请求,后续的资源和其他重定向的请求,都是通过第一个请求来获取的。

    作者回复: 关于2, 第一个是DOM,没有它,后面的全都没了。

    2019-12-30
收起评论
9
返回
顶部