性能测试的大原则:模拟最可能发生的最极端并发访问的情况
性能测试:在不同负载情况下,查看被测试系统的表现。
前端性能:app 性能(GT、Emmagee)
后端性能:接口和服务。
性能的指标:TPS 和平均响应时间
loadrunner三大组件:
virtual user genertator:虚拟用户生成器,录制脚本,调试脚本,单线程跑
controller:设定性能测试的场景,运行多线程(多进程)并发执行并发测试的。
analysis:分析性能测试执行后的结果,可以出很多图表。
参数化:
用同样的用户名和密码登录能够避免大量的缓存被命中,增加服务器的压力
关联:登录了之后,系统返回一个token,访问所有的后续页面带有这个token。录制的时候,拿到录制的token都是老的值,这个时候就需要使用关联。把需要用到的动态数据放到变量里,下次使用的时候用变量替换。
启动web tours
勾选以下两项,可以查看loadrunner出错的信息
录制脚本相关配置介绍
脚本的结构:
vuser_init:函数,在一个线程中最多执行1次,一个用于数据准备等操作,在action前执行
action:函数,在一个线程中可以执行1-多次
vuser_end:函数在一个线程中最多执行1次,一个用于数据清理等操作,在action后执行。
开始录制:
动静分离:
静态的网页,图片,静态的js,静态的css单独放到一个服务器上,动态的放到另外服务器上,给动态服务器减压
loadrunner全部都是基于协议来实现的,没有浏览器进行展示,所以静态的资源没有什么用。
录制的脚本:
Action()
{
web_add_auto_header("DNT",
"1");
web_url("index.htm", //请求的名字
"URL=http://127.0.0.1:1080/WebTours/index.htm", //请求的网址
"Resource=0", //是否是资源?0,不是资源,是个网页,1:是资源:文件:图片、js、css..
"RecContentType=text/html", //contentType:请求类型:网页类型
"Referer=", //从哪个网址访问来的信息
"Snapshot=t1.inf", //截图文件的名字
"Mode=HTML", //录制的模式:html, url。如果有ajax\flash\:必须使用url:会把所有的http请求录制下来。
LAST);
web_set_sockets_option("SSL_VERSION", "2&3");
web_url("login.pl",
"URL=http://127.0.0.1:1080/WebTours/login.pl?username=&password=&getInfo=true",
"Resource=0",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/WebTours/home.html",
"Snapshot=t3.inf",
"Mode=HTML",
LAST);
web_add_cookie("SRCHD=AF=NOFORM; DOMAIN=iecvlist.microsoft.com");
web_add_cookie("SRCHUID=V=2&GUID=213C7604B2E646778D68C0E2C5F9563A&dmnchg=1; DOMAIN=iecvlist.microsoft.com");
web_add_cookie("SRCHUSR=DOB=20190119; DOMAIN=iecvlist.microsoft.com");
web_add_cookie("MC1=GUID=1cc40e7eeb084d58a1a4aab5a0176a31&HASH=1cc4&LV=201903&V=4&LU=1553846123710; DOMAIN=iecvlist.microsoft.com");
web_add_cookie("MUID=30550888172C666B26C505A6132C607F; DOMAIN=iecvlist.microsoft.com");
web_add_auto_header("UA-CPU",
"AMD64");
web_revert_auto_header("UA-CPU");
web_submit_data("login.pl_2",
"Action=http://127.0.0.1:1080/WebTours/login.pl", //数据提交后的处理网址
"Method=POST", //http协议的类型
"RecContentType=text/html", //资源类型,contenttype
"Referer=http://127.0.0.1:1080/WebTours/login.pl?username=&password=&getInfo=true",
"Snapshot=t6.inf",
"Mode=HTML",
ITEMDATA,
"Name=username", "Value=tianchuan", ENDITEM,
"Name=password", "Value=tianchuan", ENDITEM,
"Name=passwordConfirm", "Value=tianchuan", ENDITEM,
"Name=firstName", "Value=tianchuan", ENDITEM,
"Name=lastName", "Value=tianchuan", ENDITEM,
"Name=address1", "Value=tianchuan", ENDITEM,
"Name=address2", "Value=tianchuan", ENDITEM,
"Name=register.x", "Value=57", ENDITEM,
"Name=register.y", "Value=13", ENDITEM,
LAST);
return 0;
}