性能测试
wan_xie2009
这个作者很懒,什么都没留下…
展开
-
web_reg_save_param介绍
应用范围 在使用Loadrunner进行性能测试时,经常遇到一种情况,需要通过web页面修改某事务的状态。于是需要首先读出当前的事务的状态,再进行修改,此时便可以使用到web_reg_save_param了。可以通过它先将事务的状态读出写入一个自定义的变量中,根据变量的值来决定下一步的动作。简要说明 语法:int web_reg_save_param(const char *P转载 2012-03-27 11:18:13 · 656 阅读 · 0 评论 -
Java性能剖析]Sun JVM内存管理和垃圾回收
内存管理和垃圾回收是JVM非常关键的点,对Java性能的剖析而言,了解内存管理和垃圾回收的基本策略非常重要。本篇对Sun JVM 6.0的内存管理和垃圾回收做大概的描述。 1.内存管理 在程序运行过程当中,会创建大量的对象,这些对象,大部分是短周期的对象,小部分是长周期的对象,对于短周期的对象,需要频繁地进行垃圾回收以保证无用对象尽早被释放掉,对于长周期对象,则不需要频转载 2012-05-16 15:14:00 · 524 阅读 · 0 评论 -
使用OCR来帮助LR实现认证码识别 By 云层
今天看到一个关于使用AUTOIT调用OCR的帖子,于是就又照猫画虎的转成LR专用了。原帖地址:http://www.51testing.com/index.php?uid-194902-action-viewspace-itemid-808450原理很简单,用一个请求去刷新认证码返回页面,然后通过关联将返回的图片保存为硬盘的一个文件,然后用ocr去识别这个文件内容,保存结果到txt,最后用LR读这转载 2012-05-17 15:08:58 · 421 阅读 · 0 评论 -
小议LR中的download filter功能
有朋友正好在解答帖中问到这个问题,以前也确实没仔细看这个的细节,所以这里再补一个小介绍51Testing软件测试网@+I+RnF^m"zX8vXsf7T P Cc v0在LR的Runtime setting中有一个download filter功能,该功能可以帮助我们在回放脚本的时候对某些特定的访问进行屏蔽,来解决页面读取中垮服务器,带来数据影响的问题。51Testing软件测转载 2012-05-17 15:53:13 · 559 阅读 · 0 评论 -
性能监控与性能问题定位之:Java篇
阅读本文之前建立对Java(JVM、GC)和其Web服务程序有所了解。 以下是Java自带的性能监控工具jps(jps -mlvV)与Linux上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。jstat(man jstat | jstat -gc $jpid)监视VM内存工具,可以用来监视VM内转载 2012-06-12 11:37:12 · 670 阅读 · 0 评论 -
JVM性能调优
JVM会根据机器的硬件配置对每个内存代选择适合的回收算法,比如,如果机器多于1个核,会对年轻代选择并行算法,关于选择细节请参考JVM调优文档。 稍微解释下的是,并行算法是用多线程进行垃圾回收,回收期间会暂停程序的执行,而并发算法,也是多线程回收,但期间不停止应用执行。所以,并发算法适用于交互性高的一些程序。经过观察,并发算法会减少年轻代的大小,其实就是使用了一个大的年老代,这反过来跟并行算法转载 2012-06-20 17:39:03 · 640 阅读 · 0 评论 -
LoadRunner的xml协议使用
思考曾经做过的一个黄金交易系统,里面针对后端进行报文发送,报文均是采用的xml格式,只不过传输和接受前后需要进行加解密,现在想来如果不是由于加解密包采用的是java,那我们完全可以采用LR的原生态C函数和XML协议函数做到更为优雅的测试脚本,利用LR的xml函数对整个xml报文实现动态封转。函数:lr_xml_get_valuesAction(){ char *xml_inp转载 2012-06-26 17:07:30 · 2283 阅读 · 0 评论 -
记录一次针对lr_load_dll对话
调用dll时候提示找不到指定模块 1、dll是c++写的2、load的dll写的是绝对路径,且依赖dll也在这个目录下现在还是提示“LoadLibrary(f:\TEST_CC\TEST_CC\KcbpWwxt.dll) failed : 找不到指定的模块”你觉得还有什么原因导致不能加载啊 LHT 10:44:42 1、从上面看你没加双引号;2、其次查如下问题:转载 2012-06-26 17:02:36 · 1056 阅读 · 0 评论 -
lr_eval_string;sprintf;lr_save_string;用法
一、lr_save_string 使用介绍1.该函数主要是将程序中的常量或变量保存为lr中的参数。格式://将常量保存为参数lr_save_string("777","page");web_url(http://www.sina.com.cn/{page});lr_eval_string("{page}");//将变量保存为参数,tmp为变量lr_save_str转载 2012-06-27 13:13:48 · 1059 阅读 · 0 评论 -
TCP态迁移,CLOSE_WAIT & FIN_WAIT2 的问题[收集整理]
TCP状态迁移大家对netstat -a命令很熟悉,但是,你有没有注意到STATE一栏呢,基本上显示着established,time_wait,close_wait等,这些到底是什么意思呢,在这篇文章,我将会详细的阐述。大家很明白TCP初始化连接三次握手吧:发SYN包,然后返回SYN/ACK包,再发ACK包,连接正式建立。但是这里有点出入,当请求者收到SYS/ACK包后,就开始建立连接了转载 2012-07-30 18:24:38 · 612 阅读 · 0 评论 -
linux页面回收浅析
关于页面的使用在之前的一些文章中,我们了解到linux内核会在很多情况下分配页面。1、内核代码可能调用alloc_pages之类的函数,从管理物理页面的伙伴系统(管理区zone上的free_area空闲链表)上直接分配页面(见《linux内核内存管理浅析》)。比如:驱动程序可能用这种方式来分配缓存;创建进程时,内核也是通过这种方式分配连续的两个页面,作为进程的thread_info结构和内转载 2012-07-30 18:30:02 · 416 阅读 · 0 评论 -
关于网络设备的FIN_WAIT_2状态解释
在HTTP应用中,存在一个问题,SERVER由于某种原因关闭连接,如KEEPALIVE的超时,这样,作为主动关闭的SERVER一方就会进入 FIN_WAIT2状态,但TCP/IP协议栈有个问题,FIN_WAIT2状态是没有超时的(不象TIME_WAIT状态),所以如果CLIENT不关闭,这个FIN_WAIT_2状态将保持到系统重新启动,越来越多的FIN_WAIT_2状态会致使内核crash。转载 2012-07-30 19:15:03 · 853 阅读 · 0 评论 -
LR javavuser协议脚本的环境变量问题
近日利用LR 写了个javavuser协议脚本,先是在eclipse里调试通过的,移植到LR中回放始终报错。错误如下:"System.err: at sun.net.util.URLUtil.urlNoFragString(URLUtil.java:29) Error""System.err: at sun.misc.URLClassPath.getLoader(URLClassPa原创 2012-08-29 15:14:57 · 1904 阅读 · 0 评论 -
三大WEB服务器对比分析(apache ,lighttpd,nginx)
http://www.linuxany.com/archives/1368.html在相对大 的网站,节约下来的服务器成本无疑是客观的。而有些小型网站往往服务器不多,如果采用 Apache 这类传统 Web 服务器,似乎也还能撑 过去。但有其很明显的弊端: Apache 在处理流量爆发的时候(比如爬虫或者是 Digg 效应) 很容易过载,这样的情况下采用 Nginx 最为合适。建议方案:转载 2012-09-29 18:01:24 · 1115 阅读 · 0 评论 -
用ab对apache负载均衡集群的性能测试对比报告
apache服务器自带有一个叫AB(ApacheBench)的工具,在bin目录下使用这个工具可以对服务器进行负载测试。用法:ab -n 全部请求数 -c 并发数 测试urlConcurrency Level: 50 #并发数 Time taken for tests: 92.76140 seconds #全部请求完成耗时Complete r转载 2012-09-29 17:28:17 · 1028 阅读 · 0 评论 -
apache自带负载均衡的集群(mod_proxy)
下面以在apache mod_proxy下做的反向代理负载均衡为配置实例:在站点www.test.com,我们按提供的内容进行分类,不同的服务器用于提供不同的内容服务,将对http://www.test.com/news的访问转到IP地址为192.168.1.1的内部服务器上处理,对http: //www.test.com/it的访问转到服务器192.168.1.2上,对http://转载 2012-09-29 17:31:49 · 678 阅读 · 0 评论 -
LAMP 系统性能调优,第 1 部分: 理解 LAMP 架构
如今,使用 LAMP(Linux?、Apache、MySQL 和 PHP/Perl)架构的应用程序不断被开发和部署。 但是,服务器管理员对应用程序本身几乎没有控制能力,因为应用程序是别人编写的。这份共三部分的系列文章将讨论许多服务器配置问题,这些配置会影响应用程序的性能。第一篇文章讨论 LAMP 架构、一些性能度量技术以及一些基本的 Linux 内核、硬盘和文件系统调节。后续的文章将研究 Apac转载 2012-09-29 17:33:34 · 606 阅读 · 0 评论 -
android tcpdump
1. 手机要有root权限2. 下载tcpdump http://www.strazzere.com/android/tcpdump3. adb push c:\wherever_you_put\tcpdump /data/local/tcpdump4. adb shell chmod 6755 /data/local/tcpdump5, adb shell,转载 2013-04-03 11:16:21 · 951 阅读 · 0 评论 -
分析Jvm的heap溢出的实例
原文地址:http://jarfield.javaeye.com/admin/blogs/583946 http://www.javaeye.com/topic/626801 说起Java的内存泄露,其实定义不是那么明确。首先,如果JVM没有bug,那么理论上是不会出现“无法回收的堆空间”,也就是说C/C++中的那种内 存泄露在Java中不存在的。其次,如果由于Java程序一直持有某转载 2012-05-16 17:55:30 · 1131 阅读 · 0 评论 -
Error -26601: Decompression function 错误解决
Action2.c(30): Error -26601: Decompression function (wgzMemDecompressBuffer) failed, return code=-5 (Z_BUF_ERROR), inSize=0, inUse=0, outUse=0这个错误为数据包较大,未下载完整或其他原因导致解压错误。解决方法:增加network buffer siz原创 2012-05-15 17:44:20 · 2434 阅读 · 0 评论 -
如何取LR web_reg_sava_param的值
Action(){int x,j;char cname[20];x=web_reg_save_param ("data", "LB=username=", "RB=,", "Ord=ALL", LAST);转载 2012-03-27 11:20:09 · 591 阅读 · 0 评论 -
LR函数(中文注释)
附录LR中的部分函数中英文对照:lr_start_transaction 为性能分析标记事务的开始lr_end_transaction 为性能分析标记事务的结束lr_rendezvous 在 Vuser 脚本中设置集合点lr_think_time 暂停 Vuser 脚本中命令之间的执行lr_end_sub_transaction 标记子事务的结束以便进行性能分析lr_end转载 2012-03-27 11:22:16 · 759 阅读 · 0 评论 -
LR下载文件脚本
思路如下:1.设置接收大小,单位是character2.保存要接收的内容到参数,后面文件存储的内容来源于这个参数信息3.获取要下载文件的大小4.使用fopen(*filename,mode) open a file for buffer I/O,注意,返回值是long类型,请参考帮助文档5.写文件6.关闭文件流。源代码如下:Action(){int if转载 2012-03-27 11:31:42 · 460 阅读 · 0 评论 -
LR监控JVM
double atof (const char *string);//¶¨ÒåtomcatÄÚ´æʹÓÃÇé¿öµÄ¼àÊÓÆ÷ÊÂÎñ£»lr_start_transaction("monitor tomcat"); //±£´æ3¸ö²ÎÊý£»web_reg_save_param("JVMFreeMemory", "LB=Free memory: ", "R原创 2012-03-29 17:29:24 · 579 阅读 · 0 评论 -
LR场景批处理脚本
保存好场景后,可用批处理来逐个跑场景,周末或假期结束后就能拿到测试结果了。clsSET M_ROOT="D:\Program Files\Mercury Interactive\Mercury LoadRunner\bin"%M_ROOT%\wlrun.exe -TestPath "D:\Program Files\Mercury Interactive\Mercury LoadRun原创 2012-04-01 11:36:57 · 723 阅读 · 0 评论 -
LR实现普通文字转换为URL格式编码
http://motevich.blogspot.com/2007/09/loadrunner-convert-text-to-url-format.htmlLoadRunner - how to convert a plain text to URLformatThe task - How to convert a plain text string to URL-format in原创 2012-04-01 11:43:29 · 1515 阅读 · 0 评论 -
将文字转换为encodeURIComponent格式
var xvar wan=new Array("广州南","珠海北","碧江")for (x in wan){document.write(escape(encodeURIComponent(wan[x])) + "")}将以上代码保存为html格式后,打开即将数组中的文字转换成encodeURIComponent格式。原创 2012-04-01 11:51:21 · 386 阅读 · 0 评论 -
批量将文字转换为encoding格式
按行读取文件中,转换后并保存文件。以下为代码: import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.UnsupportedEncodin原创 2012-04-01 11:58:48 · 340 阅读 · 0 评论 -
thread dump分析
一:jstackjstack命令的语法格式: jstack 。可以用jps查看java进程id。这里要注意的是:1. 不同的 JAVA虚机的线程 DUMP的创建方法和文件格式是不一样的,不同的 JVM版本, dump信息也有差别。本文中,只以 SUN的 hotspot JVM 5.0_06 为例。2. 在实际运行中,往往一次 dump的信息,还不足以确认问题。建议产生三次 dump信转载 2012-04-10 16:32:41 · 1263 阅读 · 0 评论 -
项目总结
项目上线,有时间总结一下当前的项目,对自己而言,一直是一个学习的过程。本篇总结我们的测试实践。本文分5部分,分别是:项目背景、系统架构与模块划分、我们的测试实践、自动化测试在项目中的价值与对自动化测试的进一步思考。一、项目背景所有对项目的介绍一定是从客户开始。客户:我们的客户是一家全球领先的时尚内容提供商,通过遍布全球的员工,客户每天获取大量关于时装发布、产品设计、街边流行、城市热转载 2012-04-13 16:54:03 · 385 阅读 · 0 评论 -
Web服务器压力测试工具http_load、webbench、ab、Siege使用教程
一、http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。还可以测试HTTPS类的网站请求。下载地址:http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.g转载 2012-05-04 11:33:01 · 506 阅读 · 0 评论 -
一次性能测试总结
本次提交针对性能修改了2个地方:PS存储用户在线状态表从TC的b+ tree in memory db改为hash in memory db;GS连接mysql数据连接固定为1个,修改为可以进行配置;1.1 结果分析本次修改后单进程多并发、多进程单并发与上次结果基本一致; PS:CMD_PS_GET_USER_STATE测试多线程多并发时,反倒比单线程慢,而且cpu的s原创 2012-05-08 17:06:47 · 366 阅读 · 0 评论 -
接口测试的两种方法
其实无论用那种测试方法,接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。一、 用LoadRunner实现接口测试大家都知道LoadRunner是一种性能测试工具,但它也可以用在我们做接口测试的时候。开发人员开发出来的接口,提供给测试人员详细的接口使用说明书转载 2012-05-28 19:23:25 · 2247 阅读 · 0 评论 -
腾讯后台开发技术总监浅谈过载保护 小心雪球效应
摘要: 每个系统,都有自己的最大处理能力,后台技术人员对此必须很清楚,且要注意自我保护,不然就会被雪球压垮。雪球: 对于时延敏感的服务,当外部请求超过系统处理能力,如果系统没有做相应保护,可能导致历史累计的超时请求达到一定规模,像雪球一样形成恶性循环。由于系统处理的每个请求都因为超时而无效,系统对外呈现的服务能力为0,且这种情况下不能自动恢复。 腾讯后台开发技术转载 2012-05-10 15:05:21 · 1044 阅读 · 0 评论 -
FastCGI 与CGI区别
原理一样,都是通过多进程模式处理多请求。不同之处在于 FastCGI 的一个进程处理完一个请求之后重置状态并挂起,待下一个请求来时继续处理;而 CGI 的一个进程则处理完一个请求后退出,下一个请求来时再创建新进程。Linux 下创建进程开销非常小,在创建进程问题上二者差别可以忽略。关键是不少基于 CGI 应用服务在进程创建之后初始化是需要开销的(比如 PHP-CGI),这时 FastCGI 能转载 2012-05-10 15:14:41 · 504 阅读 · 0 评论 -
缓存命中率
命令行查看Memcached运行状态很多时候需要监控服务器上的Memcached运行情况,比如缓存的查询次数,命中率之类的。但找到的那个memcached-tool是linux下用perl写的,我也没试过windows能不能用。后来发现个简单的办法可以做到,就是使用Telnet。首先登录到服务器,然后在cmd命令行中键入telnet 127.0.0.1 11211其中127.0转载 2012-05-11 19:08:56 · 552 阅读 · 0 评论 -
基于AMF协议的Flex应用程序
接触过Flex应用的,基本上对于其表现层的视觉效果都是非常赞赏的,也正是由于其华丽的外表掩盖了其诸多内在的缺陷,比如说响应速度、内存泄漏等等性能问题,对于大部分的Flex开发程序员或者是测试人员都是非常头痛的事情。本人最近就碰到基于Flex应用程序的性能测试,由于它本身的特殊性,通信组建、协议基本上都是Adobe自己开发的,所以基本上通用的测试工具对他支持都是不太理想的。通过一系列的摸索,最终还是转载 2012-05-14 14:07:06 · 573 阅读 · 0 评论 -
linux catalina.sh配置
凡事真得动真格的,一动起手来,遇到各种问题。本次且不说tomcat 6.0.36版本不能使用jstat命令。有空待查解决方案。6.0.32版本已找到解决方案,貌似不适用与6.0.36版本。于是重新安装6.0.32版本,所以catalina.sh得重新配置。主要是加入 export JAVA_OPTS=‘-Xms256m -Xmx256m -XX:+HeapDumpOnOutOfMemo原创 2013-04-02 17:15:44 · 1638 阅读 · 0 评论