Action()
{
//思考时间
//lr_think_time (5);
//集合点设置
lr_rendezvous("集合");
//事务
lr_start_transaction("trans");
web_add_cookie("cart=6593,12,12|6965,8,8|7989,9,9|4038,5,5; DOMAIN=192.168.3.32");
web_add_cookie("deleteCartProducts=; DOMAIN=192.168.3.32");
// web_add_cookie("promotionRuleList=142,2774,2,-1|142,6593,1,-2|142,6965,1,-2|142,7989,0,-2|142,4038,0,-2|142,-1,1,1|145,2774,1,-1|145,6593,1,-2|145,6965,0,-2|145,7989,0,-2|145,4038,0,-2|145,-1,1,1|148,7989,2,-1|148,6593,1,-2|148,6965,0,-2|148,7989,0,-2|148,-1,1,1; DOMAIN=192.168.3.32");
//Ajax
web_add_auto_header("x-requested-with",
"XMLHttpRequest");
//文本检查点
// web_reg_find("Fail=NotFound",
// "Search=Body",
// "Text=86.40",
// LAST);
// 通过返回“86.40”检查成功
web_reg_find("Text=86.40",
"SaveCount=Hello",
"Search=Body",
LAST);
/*
* 请求前
*/
web_custom_request("AllGroupSKC",
"URL=http://192.168.3.32:13245/Shopping/AllGroupSKC?_=1377684914235",
"Method=POST",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
"EncType=",
LAST);
/*
* 请求后
*/
// 检查结果
if (atoi(lr_eval_string("{Hello}")) > 0){ //判断如果Welcome字符串出现次数大于0
//判断如果Welcome字符串出现次数大于0
lr_output_message("Log on successful.");
}else{ //如果出现次数小于等于
//如果出现次数小于等于
lr_error_message("Log on failed");
}
//在日志中输出Log on failed
//移除头信息
web_revert_auto_header("x-requested-with");
//web_remove_cookie("promotionRuleList");
lr_end_transaction("trans", LR_AUTO);
return 0;
}
1、增加压力机-->server单机的场景,或者在服务器上安装linux版本的,直接抛开网络状况,来压。
2、web_cleanup_cookies() 清除cookies
web_remove_cookie()
//web_cache_cleanup();//清空缓存
访问首页,应该以带缓存的方式压测
访问单个商品页面,应该以清空缓存的方式压
压测空白页面
清除缓存:静态数据一直会获取,占用带宽==== vs 带缓存:静态数据一次性获取,而动态数据会一直获取
加集合点-总体tps会低 ==== vs 不加集合点 tps会高
加thinktime ==== vs 不加thinktime :不计算在tps之内的
加事务 ==== vs 不加事务,多流程的 要加多个事务
如果压页面过慢,逐步去掉资源压测,针对单个资源压测,
每个涉及到的环节都要考虑,机器节点、网络节点、访问策略,F5分发策略;
千兆带宽就只能支撑每秒120M的流量
----------------------------------
STring, stringbuffer不会动态分配内存,stringbuilder:才会动态使用内存
--------------------------------
日志要分开打印,要不然维护查问题不好查,会有log被多个节点冲散的情况
而且多个节点公用一个log文件,log4j会锁死,不能更新,新日期的log文件会生成不了
不用system.out
上线后,只输出关键日志,减少日志量
===================
家用2M的带宽,实际下载速度是170k bps
升级500倍后,下载是170*500=85M bps
假如页面是130k,当有2000的并发用户进来后,2000*130k=260M的数据量
260M/85M bps =3s,至少要用3秒时间来处理完
分享到:
相关推荐
Loadrunner 提供了多种方法来模拟 HTTP Post 请求,其中一种常用的方法是使用 web_submit_data 函数。该函数可以模拟用户在浏览器中提交表单的行为,模拟 HTTP Post 请求。 例如,在上面的代码中,我们可以看到使用...
本文将深入探讨如何使用LoadRunner来处理图片文件,并将其转换为POST请求的内容,这对于进行Web应用测试,尤其是涉及到文件上传的场景非常重要。 在给定的标题"loadrunner读图片文件转换为post内容"中,主要涉及的...
httppost可以模拟post发送和get方法向目标网站提交请求,这个是电脑端的软件,不是运行于web的脚本代码 1. testhttppost.exe:http post上传文件工具; 2. TestHttpPost: 源码; 3.lr_post.txt: 录制的loadrunner ...
检查HTTP请求是否包含所有必要的参数,如URL、方法(GET或POST)、请求头和数据体等。使用VuGen中的断点、监视器等功能,可以分析响应数据,找出可能的问题。 3. **负载模型设置**: 在Controller中定义负载模型,...
这些工具可以模拟大量并发用户,发送POST和GET请求,并收集详细的性能数据。 例如,Apache JMeter是一个开源的压力测试工具,可以创建测试计划来模拟不同类型的HTTP请求,包括POST和GET。在JMeter中,我们设定线程...
303:查看其他类似于 301/302,不同之处在于,如果原来的请求是 POST,Location 头指定的重定响目标文档应该通过 GET 提取。 304:客户请求的文档已经不再可用,服务器不知道应该重定向到哪一个地址。 305:使用...
在接口测试中,Loadrunner 通过模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理,然后再把应答报文发送给客户端,客户端接收应答报文,这一个过程就是接口测试的原理。 在 Loadrunner ...
3. **HTTP请求**:使用LR的Web_custom_request()函数发送HTTP请求,其中可能包含POST操作,用于提交JSON格式的数据。 4. **JSON数据构造**:使用LR的函数如web_add_variable()来构造JSON报文。报文可能包括键值对,...
对于Ajax脚本,可能需要参数化的是请求参数、查询字符串或POST数据。此外,【关联】是另一个重要步骤,它处理服务器响应中的动态值,确保每次回放时这些值都是正确的。在Ajax请求中,关联通常用于处理session ID或...
LoadRunner的一个小程序,是针对http的post请求,主要是测试系统的性能
例如,对于HTTP接口,可能包括URL、请求方法(GET、POST等)、请求头和请求体等。 2. **编写Vuser脚本**:使用LoadRunner的LR语言(Vuser Language)编写脚本,定义函数来读取数据文件中的参数,并构造接口调用。...
`Body`参数用于填充POST请求的数据,与`web_submit_data()`不同的是,这里直接将JSON对象以字符串形式传递。 当XML结构复杂,如多级子元素或树状结构时,使用`web_custom_request()`更灵活。你可以先构建XML字符串...
"Method=POST", ... ITEMDATA, "Name=usercode","Value={code}",ENDITEM, "Name=password","Value=",ENDITEM, LAST); ``` 这里,`lr_start_transaction`用于标记事务开始,便于性能分析;`web_submit_data`...
`function_list`通常指的是LoadRunner的Vuser脚本中使用的各种函数,这些函数可以帮助我们录制、回放和自定义网络请求。例如,`web_url()`函数用于发送HTTP GET请求,`web_post()`用于POST数据到服务器,`web_reg_...
// 发送 POST 请求 web_custom_request("jSystemFilterBean.IsShowValidateCode.dwr", "URL=http://192.168.0.123:3000/dwr/call/plaincall/jSystemFilterBean.IsShowValidateCode.dwr", "Method=POST", ...