TestOps性能课程之学习第三天

跟着芒果一起,好好学习,天天向上。上周六是我们TestOps性能课程的第三天,我们来为这一天的课程做个小总结~

周六的性能课是由云层老师带来的Loadrunner进阶:

云层老师从Loadrunner如何进行用户行为模拟、性能指标监控、性能调优三个方面进行讲解,让同学们不仅仅掌握了Loadrunner的使用方法,还带大家对于性能测试有了更深的认识。

  • 用户行为模拟

在做性能测试的过程中,我们要做的第一步就是用户行为模拟,它是一种低成本且具有可行性,模拟大量用户操作的技术。借助用户行为模拟,我们能将被测试系统在测试阶段运行起来,以检测系统工作是否正常。在模拟的过程中我们必须注意以下三个方面:不同用户使用不同的数据,多用户并发操作,用户请求间的延时时间。

而我们使用Loadrunner进行用户模拟主要是通过VuGen进行脚本的录制/编写,然后利用Controller进行场景的创建跟执行。在课堂上云层老师带着大家学习了整个脚本录制过程:创建脚本、选择协议、设置录制选项、开始录制、插入命令、停止录制。当然在在这个过程中,对于一些录制的细节进行了详细讲述,并借此再一次深化了同学们对于性能测试的理解。因为篇幅原因,我这里就抽出一些有意思的知识点跟大家介绍一下~

处理前端加密

在录制登录操作时,我们的密码有时候是被前端加密的,而我们的Loadrunner只能录制用户的行为,是不能对客户端的逻辑进行处理的,那么我们怎么完成加密的操作呢?要完成我们的加密操作,我们必须先找开发了解加密算法,在知道了加密算法之后,我们需要在服务器端写一个加密脚本,这样当我们在测试脚本中发送加密请求数据时,就可以获得包含加密后数据的应答了。服务器端的php加密算法如下图:

web_url函数:

web_url是用来加载指定的Web页面 它的函数形式为

int web_url(constchar *Stepname, const char * url, <Lists of Attributes>,[EXTRARES,<Lists of Resource Attributes>],LAST)

其中Stepname指的是VuGen中树形视图中显示的名词在自动化事务处理中也可以用作事务名词。

url指的是加载页面的地址,格式为:url=addr。

而Lists of Attributes(属性列表)则有以下内容:

FtpAscii表示我们可以使用web_url模拟从FTP服务器下载文件, web_url函数使服务器执行与文件实际下载时相同的任务,若FtpAscii为 1则以ASCII模式进行FTP下载,否则以二进制模式完成;

TargetFrame指包含当前链接或资源的帧的名称;

RecContentType记录期间RESPONSE标头的内容类型,例如,text / html,application / x-javascript,它被读取以确定目标URL是否是可记录资源;

Refere指要提交该页面请求的URL,如果指向当前页面的页面位置被具体指明,则该属性被忽略;

Resource确认URL是否是资源,为1表示URL是资源,为0表示该URL不是资源;

ResourceByteLimit主要针对已下载页面资源的body部分的累积大小,并对其进行限制,该限制只影响正在下载的资源。如果累积下载的资源大小小于限制时,则正在下载资源;当达到限制大小时,不再下载资源。如果正在下载的资源达到限制,且资源的大小时已知的(内容长度已经在响应报文头部获得),即使它仅需要一个缓冲,这个下载也已经完成;如果完成下载需要不止一个缓冲,或者如果资源的大小不知道,则下载被终止,且连接被关闭。该特性可以让用户不用等待前一个页面完整下载后就可以导航到另一个页面。不过要注意的是这个参数不能再HTTP模式中使用,仅仅应用在soket中;

Snapshot主要用于关联的快照文件的文件名(inf扩展名);

Mode指定录制级别:HTML或HTTP,当录制级别为HTTP模式时,只加载第一个请求;而HTML模式则是先请求第一个对象,然后用HTML模式来动态加载后续所有请求,但是并不代表加载了所有对象请求。现在做性能测试一般走HTTP模式,因为考虑动态数据就行了,静态部分不用考虑了。

EXTRARES为分隔符,其后的资源由是非html里面的请求,是由Javascript、CSS等产生的请求,之后紧跟的是下载的资源的属性列表Lists of ResourceAttributes:

URL指通过URL地址下载的web资源;

Referer指发送下载请求的页面,比如一个swf要下载一个图片,那么swf就是referer;

ENDITEM是列表中每个资源的结束标志符。

一个小例子:

当然关于用户行为模拟的有意思又必须掌握的知识点肯定不止上面两个例子,还有参数化、关联等处理;Loadrunner必须掌握的函数除了web_url还有web_submit_data、web_custom_request、lr_output_message、lr_save_string、lr_eval_string等等,希望大家通过学习能够掌握到用户行为模拟的方法。

  • 性能指标监控

通过上面技术模拟用户的行为,在系统运行中需要监控各项性能指标,并分析指标的正确性。主要对请求响应时间、服务器处理能力、服务器资源利用率进行监控。

我们可以通过Loadrunner的Controller配置服务器的监控,初步了解服务器的性能状况,但是由于数据并不是很准确的,所以我们做好还是利用上一节课学习的被测系统及监控体系搭建的内容进行监控哟~

  • 性能调优

性能调优是指通过指标的监控发现系统存在的性能缺陷,利用分析工具,定位修正性能问题。

Loadrunner主要是利用Analysis进行测试结果的分析。

在谈到调优问题时,云层老师谈到了对于动态数据,我们的软件系统可以利用缓存来获取已存在的数据,以减少对后端运算的压力;而我们在做性能测试的过程中则要避免缓存,从负载的角度来说就是要制造软错误跟硬错误。那什么是软错误硬错误呢?软错误,是指当我们在内存中查找我们所需要的数据,但是在热数据中没有找到我们想要的数据,只能去缓存数据中去找,这就造成了软错误。而硬错误则是为了避免内存不够用,在加载热数据的时候一旦出现冷数据空间不够了,那么就把部分相对较冷的数据放到虚拟内存。一旦出现了硬错误,IO就会很高,系统的性能就会急速下降,所以我们在解决性能问题时有个非常好的方式就是加内存。

当然这一天的课程芒果只是抽出其中的十分之一不到的内容给大家介绍,云层老师讲解程度也更加深入,要想好好掌握性能测试还是跟着云层老师在课堂上好好学习吧~

文章最后介绍一下我们只是肚子有点大的男神——云层老师:

陈霁 网络ID云层 全栈测试、TestOps测试运维推动者,云层天咨创始人。曾先后供职于ETANG和GAMELOFT(上海)有限公司,原51testing资深讲师、产品总监,性能测试,自动化测试资深专家,著有《性能测试进阶指南》系列丛书。为行业内数百家公司数千学员提供测试技术咨询、培训、服务。百度名家,超过15W读者。

点击原文链接,即可直达课程直播页面!

TestOps|测试运维

精益技术 赋能过程

(0)

相关推荐

  • 推荐一款前端性能测试工具:WebPageTest

    谢谢打开这篇文章的每个你 关注我们 点击右上角···设为星标 工具介绍 WebPageTest这是一个非常详细且专业的web页面性能分析工具,而且开源的!如果你打不开其官网,或者担心安全问题,你可以自 ...

  • TestOps自动化课程之学习第三天

    Hello,大家好.又到了清风为大家总结时间了,今天来给大家总结点什么东西呢?在我们上周六开始了自动化班级的第三天上课,而我今天就来给大家分享一下上周六的课程我们学习的一丢丢知识. 今天跟大家分享的知 ...

  • TestOps性能课程之学习第一天

    今天是我们TestOps性能课程的第一天,我们来为今天的课程做个小总结.跟着芒果一起好好学习,天天向上~ 什么是性能测试.性能问题产生的原因 云层老师认为性能测试可以被称为性价比测试,它本质上其实是对 ...

  • TestOps性能课程之学习第五天

    跟着芒果一起,好好学习,天天向上.上周六是我们TestOps性能课程的第五天,我们来为这一天的课程做个小总结~(关于第四天的课程总结,芒果之后再为大家推出) 从大的角度来说性能测试有三大步骤:负载.监 ...

  • TestOps自动化课程之学习第一天

    Hello,大家好.又到了清风为大家总结时间了,今天来给大家总结点什么东西呢?在我们上周六开始了自动化班级的第一天上课,而我今天就来给大家分享一下上周六的课程我们学习了什么知识. 先来给大家看下思维导 ...

  • TestOps自动化课程之学习第二天

    Hello,大家好.又到了清风为大家总结时间了,今天来给大家总结点什么东西呢?在我们上周六开始了自动化班级的第二天上课,而我今天就来给大家分享一下上周六的课程我们学习了什么知识. 先来给大家看下思维导 ...

  • TestOps自动化课程之学习第四天

    Hello,大家好.又到了清风为大家总结时间了,今天来给大家总结点什么东西呢?在我们上周六开始了自动化班级的第四天上课,而我今天就来给大家分享一下上周六的课程我们学习的一丢丢知识. 先来给大家看看,我 ...

  • TestOps自动化测试课程学习之第三天

    跟着芒果一起,好好学习,天天向上.上周六是我们TestOps自动化班Python课程的第三天,我们来为这一天的课程做个小总结~ 周六的自动化课程是由芒果给大家带来的Python函数及函数调用.Pyth ...

  • TestOps性能测试课程学习之第六天

    跟着芒果一起好好学习,天天向上~ 上周六是我们TestOps性能进阶课程第六天--性能瓶颈与分析的学习.这一天的课程依旧是干货满满,云层老师从构建性能测试分析思路.性能瓶颈定位.常见性能分析模型.性能 ...

  • (新)骆耀军:不用交论文作业的课程(麦吉尔大学学习速记三)

    在麦吉尔大学,我听的基本上都是导师方秀洁(Grace S. Fong)教授的课程.课堂上,方老师以一贯的儒雅,字字轻圆地细说着古典文学的嘈嘈切切.那不疾不徐的声音,加上在山泉水般的低回婉转,使人&qu ...