如何调试脚本,解决脚本回放成功但失败的情况

如何调试脚本,解决脚本回放成功但失败的情况
如何调试脚本,解决脚本回放成功但失败的情况

1 背景

1.1 讲一个故事

以前我们公司招了一个自称非常熟练loadrunner的员工,有一次分配给他测试sso 单点登录系统的性能测试。登录一个网站A,需要输入用户名密码,然后在访问另一个网站B,因为在网站A已经登录过,所以B应该不需要再登录,直接就可以访问B页面。让该员工测试下可以支持多少用户,及稳定性。

该员工使用loadrunner测试了2天,然后给我们报告说支持320左右个用户并发。

然后,我们跟他一起验证下,确实在320并发时就出现用户失败。但检查系统A与B,发现A确实登陆了,但B没有数据,后面他定位了半天也没解决问题,最后我帮他定位下,结果发现是发给B系统请求B页面的HTTP的会话信息里没有包括用户已经登陆的信息,会话在Cookie与URL的参数都存在。

还有另外一个问题,当时由于没研究loadrunner是如何模拟用户的,后来参与开发了kylinPET性能测试工具,才对性能工具的原理有深入的了解。其实之前loadrunner工具测试的并发用户数最大支持320,是错误的,大家可以看我写的“如何测试服务器的最大并发数”,网址:https://www.360docs.net/doc/1f8675688.html,/dow_6_1.html

1.2 该故事说明了什么

该故事说明了,一个熟练loadrunner的人进行系统性能测试,还是出现花费了2天多的时间是白费的,因为实际B系统还需要登录,因此无法访问B 页面。

为什么呢,因为他对业务了解不透,还有认为loadrunner回放通过就表示脚本没问题,虽然他做了一些关联参数,但脚本其实还是错误的。因此,会

使用性能测试工具只是一项技能,真正掌握性能测试,还需要结合业务与协议、网络知识,另外还需要掌握测试工具调试脚本方法。

1.3 在网络上经常出现求助帖:测试工具脚本回放成功,但实际是失败

在网络论坛上经常出现求助帖:测试工具loadrunner或jmeter的脚本回放成功,但检查后台,数据不存在或用户其实没登陆。

很多测试人员对系统不了解,有不懂HTTP协议,也不了解网页怎么产生的,然后就使用测试工具进行测试;有些人员会检查后台发现脚本有问题,但不会定位;有些经验丰富的人,知道怎么调试脚本,验证脚本,并定位问题修改;然而,有些新手或经验不足的测试人员会出现做无用功,而且还不知道自己做了无效的性能测试,因为他认为测试工具回放成功就表示OK。

其实,很多开发人员或设计人员也不能完全了解被测系统,另外也不了解HTTP协议,因为HTTP是底层的,都被封装了,如spring开发基本就不需要了解HTTP。所以,测试人员要掌握一些基本知识,如HTTP协议、基本的网络知识,还有掌握系统架构、场景、还有业务流程,也是很有技术含量的。

对于W EB学会使用浏览器调试功能或httpwatch了解系统业务交互流程,学习HTTP。如果有这样的基础,使用性能测试工具调试脚本就事半功倍啦。2 介绍怎么调试脚本(这里只介绍WEB)

很多测试人员或开发人员对HTTP或HTML不熟悉,很大可能还不了解业务细节,所以自己修改脚本有一定的难度,需要借助工具提供的调试功能来调试脚本。主要解决业务动态的地方:参数化、关联参数、Cookie。

2.1 测试工具怎么判断脚本失败

当如下情况发生时:

1)发送请求消息参数化失败

2)出现响应码错误,如收到500、505等错误码

3)出现超时,请求HTTP,但它的响应时间超过期望时间

4)建立TCP连接失败

2.2 脚本回放成功并不代表业务成功

一个脚本执行成功通过上面条件判断是不够的,因为可能存在这样的情况,登录成功,服务器回302定位到正常页面;登录失败,服务器回302或200定位到错误页面或登录页面。登录失败时,其实所有HTTP请求都是成功的,只是业务失败,所有根据上面条件,测试工具会认为脚本执行成功。如下图,登陆失败跳到error.jsp,但响应码是302。如:

如果没有判断响应码或检查页面内容(检查点),则测试工具会认为脚本正常,继续请求已录制的后面的HTTP请求,但其实脚本已经失败,因为业务失败啦,没出现正常页面。

这种情况是常发生的,即得到的内容或页面不是正常的。

很多工具只提供检查页面内容,没有提供检查响应码,但没经验的测试人员,可能不会设置或忽略设置,因为脚本执行成功,他认为脚本没问题,这将导致性能测试无效。

loadrunner不支持检查响应码但支持设置检查点,kylinPET支持检查响应码与检查点,响应码自动根据录制设置。

2.3 脚本回放成功,需进一步验证

脚本回放成功后,还需要进一步验证,验证方法:

2.3.1 检查服务器

在服务器上查看数据是否正确,如检查用户提交了数据是否存在;但只有用户提交数据并保存到数据库或日志才可以检查,很多系统可能没用户提交,用户只是获取数

据,但可能存在由于参数错误,获取的数据失败,如获取json内容错误(HTTP仍然是回200)

所以,检查服务器并不是最好的方法,因为有些系统可能无法检查。

2.3.2 检查HTTP响应日志

检查回放脚本是的HTTP交互日志,分析是否正确,这个要求技能比较高,需要知道内容结构及看得懂内容,一般测试人员达不到。

所以,检查日志方法要求技能高些,要能读懂内容,及明白响应内容的意思。2.3.3 对比录制与回放日志

这个比直接检查回放的响应日志要方便多,通过对比出不同的地方,判断录制与回放那里不一样,来定位问题。

简单的内容(如一些参数)通过比较可以确定需要关联,但有些复杂的需要了解HTTP协议与明白响应内容。

2.3.4 直接检查图形页面,直观判断是否业务不正常

将回放数据直接展示为图形界面,测试人员通过图形一目了然即可判断页面是否正常,从而确定脚本是否正确。

这是最后的验证方法,但页面只能让用户知道脚本是否正确,如果出问题,还需要查看日志,最好能结合“对比录制与回放日志”。

2.4 性能测试工具的调试脚本介绍

由于本人精通kylinPET(开发者),用过loadrunner,所以这里只介绍这两个工具如何调试脚本。

2.4.1 Loadrunner11检查HTTP响应日志与检查页面方法

1) 录制后点击左边的回放验证

然后在右边出现录制与回放的页面,双击可以弹出放大比较页面,可以轻松判断页面是否不一样。

2) 点击工具栏的“Tree View”树形视图

然后点击窗口的HTML View(图形)与HTTP View(文本)来查看页面与响应内容

注意:

1、如果你的页面有activeX控件或者javascript脚本,loadrunner没法展示,即不支持解析

activeX控件或者javascript来展示界面,如果你的网页是由activeX控件或者javascript生

成界面的,无法支持。

2.4.2 kylinPET2.0检查HTTP响应日志与检查页面方法1) 回放时打印每个HTTP请求与响应日志

2) 点击“比较”按钮比较录制日志与回放日志

不同之处红色标识方便定位问题。点击

左边定位到对应的HTTP请求,然后红色表示有不同,通过比较可以看到登陆的Post请求的内容响应码一个是200,一个是302,且提交的参数不一样,即可定位出问题。

3) 浏览器验证页面

kylinPET没有loadrunner的解析HTML与CSS展示为页面的功能,但实现了使用浏览器验证页面的功能,浏览器自己支持解析HTML与CSS,还支持解析activeX控件或者javascript来展示页面,页面展示比loadrunner更精确。

点击“页面验证”按钮,在弹出的窗口,点击kylinPET认为有html

的URL来展示对应的页面

2.4.3 kylinPET2.0与loadrunner

从两个软件调试脚本功能的比较,可以看出kylinPET更加方便与精确,kylinPET 有一个“kylinPET WEB业务Scripter介绍”视频,里面有大部分内容详细介绍了如何调试脚本。

2.5 关联

脚本执行成功,但业务却失败的原因,基本是提交的参数或内容有问题、或者会话有问题;例如,录制时的会话为1,该会话由服务器随即产生,每次都变化;但回放时,由于服务器产生新的会话值2,如果使用录制的会话值1,将导致业务失败。会话一般存在Cookie,也有些系统存在参数。

因此,测试人员需要学会使用性能测试工具进行关联。

2.5.1 Loadrunner11关联方法

1) 手动关联

录制两次,然后将两次产生的脚本复制到一些文本比较工具(例如 UltraEdit软件),对不同之处手动参数化。

2) 自动关联

将脚本进行回放,然后通过回放日志与录制日志进行比较,然后点击自动关联,选择内容进行关联。

3) 链接网址

详细操作参照下面网址:

https://www.360docs.net/doc/1f8675688.html,/view/ef66b6363968011ca3009159.html

https://www.360docs.net/doc/1f8675688.html,/view/b53b2838376baf1ffc4fadfd.html

2.5.2 kylinPET2.0关联方法

1) 手动关联(不建议使用)

录制两次,然后将两次产生的脚本(文本视图)复制到一些文本比较工具(如UltraEdit),对不同之处手动参数化。

2) 对两次录制日志比较关联

连续录制两次,然后都保存为脚本,然后打开其中一个脚本,在工具栏点击“比较”按钮,选择另一个脚本,自动实现两个脚本比较,然后点击“关联参数”按钮,在弹出的窗口里选择需要关联的内容,自动修改脚本对应的地方,并直接替换脚本存在该内容的地方。比手动关联效率高,且更精确,而且可以选择针对性比较的HTTP请求。

3) 自动关联

类似loadrunner,将脚本进行回放,然后通过回放日志与录制日志进行比较,自动关联,操作方式与录制两次脚本一样。不同于loadrunner是界面有红色标识不同的地方,用户一目了然,更加方便。

3) 详细操作参照

kylinPET安装目录下的help目录里的文档“kylinPET HTTP(WEB)业务使用指导.chm”的“2.5 自动关联参数”一节

kylinPET视频教程“kylinPET WEB业务Scripter介绍”里有演示关联,网址:

https://www.360docs.net/doc/1f8675688.html,/s/1DsfAX

3 总结

验证脚本是否正常是性能测试最关键的一步,如果脚本不对,将导致你的性能测试都无效,即做了无用功。因此,学会调试脚本非常有必要,调试脚本就是不断的“回放->关联->验证页面”,直到页面正确。

材料物理性能及材料测试方法大纲、重难点

《材料物理性能》教学大纲 教学内容: 绪论(1 学时) 《材料物理性能》课程的性质,任务和内容,以及在材料科学与工程技术中的作用. 基本要求: 了解本课程的学习内容,性质和作用. 第一章无机材料的受力形变(3 学时) 1. 应力,应变的基本概念 2. 塑性变形塑性变形的基本理论滑移 3. 高温蠕变高温蠕变的基本概念高温蠕 变的三种理论 第二章基本要求: 了解:应力,应变的基本概念,塑性变形的基本概念,高温蠕变的基本概念. 熟悉:掌握广义的虎克定律,塑性变形的微观机理,滑移的基本形态及与能量的关系.高温蠕变的原因及其基本理论. 重点: 滑移的基本形态,滑移面与材料性能的关系,高温蠕变的基本理论. 难点: 广义的虎克定律,塑性变形的基本理论. 第二章无机材料的脆性断裂与强度(6 学时) 1.理论结合强度理论结合强度的基本概念及其计算 2.实际结合强度实际结合强度的基本概念 3. 理论结合强度与实际结合强度的差别及产生的原因位错的基本概念,位错的运动裂纹的扩展及扩展的基本理论 4.Griffith 微裂纹理论 Griffith 微裂纹理论的基本概 念及基本理论,裂纹扩展的条件 基本要求: 了解:理论结合强度的基本概念及其计算;实际结合强度的基本概念;位错的基本概念,位错的运动;裂纹的扩展及扩展的基本理论;Griffith 微裂纹理论的基本概念及基本理论,裂纹扩展的条件熟悉:理论结合强度和实际结合强度的基本概念;位错的基本概念,位错的运动;裂纹的扩展及扩展的基本理论;Griffith 微裂纹理论的基本概念及基本理论,裂纹扩展的条件. 重点: 裂纹的扩展及扩展的基本理论;Griffith 微裂纹理论的基本概念及基本理论,裂纹扩展的条件难点: Griffith 微裂纹理论的 基本概念及基本理论 第三章无机材料的热学性能(7 学时) 1. 晶体的点阵振动一维单原子及双原子的振动的基本理论 2. 热容热容的基本概念热容的经验定律和经典理论热容的爱因斯坦模型热容的德拜模型 3.热膨胀热膨胀的基本概念热膨胀的基

3性能测试赛题A6BS资产管理系统性能测试要求

任务四:性能测试 1、执行性能测试 本部分按照软件性能测试任务书要求,执行性能测试;使用性能测试工具LoadRunner ,录制脚本、回放脚本、配置参数、设置场景、执行性能测试并且 截图,截图需粘贴在性能测试总结报告中。性能测试具体要求如下: 。录制用户登录、资本录制:录制脚本协议选择“Web-HTTP/HTML ” 产维修模块进行维修登记、用户退出操作。录制完成后脚本名称命名为C_wx 。录制脚本具体要求如下: 用户登录操作录制在init ;资产维修登记操作录制在Action ;用户退出操作录制在end 。 Action 录制维修登记,使用资产名称为ZCLZ 开头的数据进行维修登记录制;对资产维修登记操作设置集合点和事务。集合点名称:R_wx ;事务名称:T_wx;维修登记成功后设置检查点,使用资产列表中新登记成功的资产名称作 为检查点,检查是否维修登记成功。 截图要求:一共3 张图,分别为:① init 登录部分脚本截图,包含左侧菜单;② Action 中进行维修登记操作部分截图,包括集合点、事务、检查点代码; ③end 退出部分脚本截图。 制完成脚本回放:脚本录制完成后使用回放功能对脚本的正确性进行校验。脚 本回放具体要求如下: 回放需要对脚本参数进行修改,使用资产名称为ZCHF 开头的数据进行回放;检查点检查资产名称。回放操作完成,查看Loadrunner 回放日志。 截图要求:一共 2 张图,分别为:①资产维修登记脚本截图;②回放概

要(Replay Summary )截图。 本参数设置要求:脚本回放成功后可继续进行下面的操作。进行性能测试之前 需先对资产名称进行参数化设置。脚本参数设置要求如下: 使用资产名称为ZCYL 开头的数据进行维修登记参数配置;资产名称参 数名称:value ,参数类型选择:File,输入50 条资产名称对应值,每次迭代取唯一值。 检查资产名称,检查点参数名称:title ,参数类型选择:File,取值规则选择同value 值相同行。 截图要求:一共 2 张图,分别为:①资产名称参数化截图;②检查点参 数化截图。 填写表格:填写性能测试总结报告中表格,表格中填写value 和title 参数值。 景设置:按照要求设置虚拟用户个数以及进行场景配置,配置要求如下:设置50 个虚拟用户。 设置集合点策略,选择设置25 个虚拟用户到达集合点时释放。 场景策略:场景名称:C_wx ,虚拟用户总数50 ,用户递增数量25,递增间隔5 秒,场景运行到所有Vuser 运行结束。 截图要求:一共 3 张图,分别为:①集合点设置策略截图;②Design 中的场景设置策略和交互计划图截图;③场景执行完成后Run 界面截图,包括运行结果。 形结果分析:场景执行完成后,需对测试结果进行截图操作,需要

打开QQ游戏提示脚本错误怎么解决

打开QQ游戏提示脚本错误怎么解决 篇一:关于脚本错误解决方案 当前页的脚本发生错误缺少对象 解决方案如下: 1.启动 Internet Explorer。 在“工具”菜单上,单击“Internet 选项”。 在“Internet 选项”对话框中,单击“安全”。 单击“默认级别”。 单击“确定”。 2.删除所有临时的 Internet 相 1. 启动 Internet Explorer。 2. 在“工具”菜单上,单击“Internet 选项”。 3. 单击“常规”选项卡。 4. 单击“删除文件”。 5. 单击“确定”。 6. 单击“删除 Cookies”。 7. 单击“确定”。 8. 在“历史记录”下,单击“清除历史记录”,然后单击“是”。 9. 单击“确定”。 3.禁用错误报告 双击控制面板中的“系统”,切换到“高级”选项卡,单击“错

误报告”按钮,选中“禁用错误报告”选项,并选中“但在发生严重错误时通知我”,最后单击“确定”按钮。 4.再用360安全卫士修复下IE 如果以上都不能彻底结诀问题,那就要查一下你电脑里是否安装了其他软件,目前最明显的就是迅雷5最新版的bug的干扰。不过也不用着急--无需删除任何软件也可解决问题: 1. 启动 Internet Explorer。, 2. 在“工具”菜单上,单击“Internet 选项”, 3. 单击“常规”选项卡, 4. 单击“程序”, 5. 单击“管理加载项”。 6. 加载项有两个选项:“已使用、当前使用”,将这两个选项里的有关迅雷的加载项全禁用,其他你认为不是windows自带的也可禁用, 7. 单击“确定”, 8. 再单击“确定”。 试试吧,问题解决么?关文件 这是困扰俺数个月的问题。今天终于解决啦,赶紧写出来供大伙分享啊!(如有新发现,及时补充) 参考资料:?si=5 第二类: 解决方法:

VC6.0中 各link错误解决方案

VC6 各link错误解决 修改浏览权限| 删除错误1: LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main 在project-setting-link里找到project options 去掉里面的/subsystem:console 错误2: nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endt... 将工程设置为Using MFC in a static library 错误3: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main 在project-setting-link里找到project options 将里面的/subsystem:console 改为/subsystem:windows ///////////////////////////////////////////////////////////// VC6的几个Link error 修改浏览权限| 删除sega 发表于- 2005-9-30 19:56:00 今天下午别人问我的,错误大概是这样: nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex Debug/poisson.exe : fatal error LNK1120: 2 unresolved externals Error executing link.exe. 我也不知道到底nafxcwd这个库是怎么回事,就google了一下,果然找到些东西: 解决外部符号错误:_main,_WinMain@16,__beginthreadex 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 下面介绍解决的方法:

金属的物理性能测试

金属的物理性能测试 金属材料的性能一般可分为使用性能和工艺性能两大类。使用性能是指材料在工作条件下所必须具备的性能,它包括物理性能、化学性能和力学性能。物理性能是指金属材料在各种物理条件任用下所表现出的性能。包括:密度、熔点、导热性、导电性、热膨胀性和磁性等。化学性能是指金属在室温或高温条件下抵抗外界介质化学侵蚀的能力。包括:耐蚀性和抗氧化性。力学性能是金属材料最主要的使用性能,所谓金属力学性能是指金属在力学作用下所显示与弹性和非弹性反应相关或涉及应力—应变关系的性能。它包括:强度、塑性、硬度、韧性及疲劳强度等。 1密度:密度就是某种物质单位体积的质量。 2热性能:熔点:金属材料固态转变为液态时的熔化温度。 比热容:单位质量的某种物质,在温度升高1℃时吸收的热量或温度降低1℃时所放出的热量。 热导率:在单位时间内,当沿着热流方向的单位长度上温度降低1℃时,单位面积容许导过的热量。 热胀系数:金属温度每升高1℃所增加的长度与原来长度的比值。 3电性能: 电阻率:是表示物体导电性能的一个参数。它等于1m长,横截面积为1mm2的导线两端间的电阻。也可用一个单位立方体的两平行端面间的电阻表示。 电阻温度系数:温度每升降1℃,材料电阻的改变量与原电阻率之比,称为电阻温度系数。 电导率:电阻率的倒数叫电导率。在数值上它等于导体维持单位电位梯度时,流过单位面积的电流。

4磁性能: 磁导率:是衡量磁性材料磁化难易程度的性能指标,它是磁性材料中的磁感应 强度(B)和磁场强度(H)的比值。磁性材料通常分为:软磁材料(μ值甚高,可达数万)和硬磁材料(μ值在1左右)两大类。 磁感应强度:在磁介质中的磁化过程,可以看作在原先的磁场强度(H)上再 加上一个由磁化强度(J)所决定的,数量等于4πJ的新磁场,因而在磁介质中的磁场B=H+4πJ的新磁场,叫做磁感应强度。 磁场强度:导体中通过电流,其周围就产生磁场。磁场对原磁矩或电流产生作 用力的大小为磁场强度的表征。 矫顽力:样品磁化到饱和后,由于有磁滞现象,欲使磁感应强度减为零,须施 加一定的负磁场Hc,Hc就称为矫顽力。 铁损:铁磁材料在动态磁化条件下,由于磁滞和涡流效应所消耗的能量。 其它如力学性能,工艺性能,使用性能等。

VC6.0编译错误解决方法集锦

VC6.0编译错误解决方法集锦 windows编程2010-05-08 21:14:39 阅读83 评论0 字号:大中小订阅 VC6.0编译错误解决方法集锦 最近打算学习一下网络编程,而大部分socket编程环境都是Unix的,很是不便,在windows中总是不能编译,特寻得一篇文章解决此痒。爽哉、爽哉! linking... server.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbol s erver.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbol s erver.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbol server.obj : error lnk2001: unresolved external symbol 原因和解决办法: 找不到相应函数,问题是Link选项里没有加入相应的lib库,winsock要连接wsock32.lib。特定库的找到办法是看LNK2001中找不到的函数名,通过msdn或者其他手段获取这个函数所在的库名,链接进去就OK了。 可以在project->setting->Link->object/library modules 里添加wsock32.lib,也可在stdafx.cpp 里添加#pragma comment(lib,"wsock32.lib") 一般来说, 这是工程的类型选择错误引起的.如在VC中, 1.本来应该选择"Win32 Console Application",而错误选择了"Win32 Application" 2.使用了MFC的类,而选择"工程"的"设置"不使用MFC库编译. 改正的方法有: 1. 选择"工程"-> "设置"-> 连接,在底部的编辑窗口中,找到"/subsystem",把其改成 "/subsystem:console" "/subsystem:windows". 2.在"工程"-> "设置"->"一般"选项中,在MFC项中改为"USE

性能测试计划模板(实例)

XXXX系统 性能测试方案 软件产品名称:XXXX 软件开发部门:XXXX 软件测试部门:XXXX 编写:XXX 日期:2008 年11 月8 日审核:XXX 日期:2008 年11 月10 日批准:日期:年月日

1.引言 1.1测试方案概述 方案名称:xxxx系统性能测试方案 测试部门:xxxxxxxx科技发展有限公司 1.2目的 本测试方案将对国美电器供应链系统的测试方法、测试工具、测试范围、测试的软件硬件环境、测试进度、测试人员的分工和职责以及测试流程进行详细的定义和整体的描述。 1.3系统概述 产品名称: xx供应链系统JL SCM 开发部门: xxxx有限公司 在企业的信息化建设中,北京国美电器有限公司将在全国范围内实施“金力供应链系统JL SCM”,该系统中采用了 Sybase 最新版本的企业智能型关系数据库产品Adaptive Server Enterprise 12.5 (ASE12.5)及复制服务器产品Sybase Replication Server,由武汉金力软件有限公司开发并协助实施。国美电器实施的“金力供应链系统JL SCM”,从现代企业理念、物流体系和全方位服务的角度,完全解决了企业的决策、计划、管理、核算、经营、物流、服务、人事及电子商务等问题。 2.术语和定义 性能测试:在一定约束条件下(指定的软件、硬件和网络环境等)确定系统

所能承受的最大负载压力的测试过程。 场景:一种文件,用于根据性能要求定义在每一个测试会话运行期间发生的事件。 虚拟用户:在场景中, LoadRunner 用虚拟用户代替实际用户。模拟实际用户的操作来使用应用程序。一个场景可以包含几十、几百甚至几千个虚拟用户。 虚拟用户脚本:用于描述虚拟用户在场景中执行的操作。 事务:表示要度量的最终用户业务流程。 3.测试流程 负载测试通常由五个阶段组成:计划、脚本创建、场景定义、场景执行和结果分析。 计划负载测试:定义性能测试要求,例如并发用户的数量、典型业务流程和所需响应时间。 创建虚拟用户脚本:将最终用户活动捕获到自动脚本中。 定义场景:使用 LoadRunner Controller 设置负载测试环境。 运行场景:通过 LoadRunner Controller 驱动、管理和监控负载测试。 分析结果:使用 LoadRunner Analysis 创建图和报告并评估性能。 4.测试目标与策略 4.1测试目标 1)确定系统能承载的最大容量; 2)定位系统性能瓶颈; 3)确定系统典型事务响应时间; 4)出具可信的独立的第三方的性能测试报告。

如何调试脚本,解决脚本回放成功但失败的情况

1 背景 1.1 讲一个故事 以前我们公司招了一个自称非常熟练loadrunner的员工,有一次分配给他测试sso 单点登录系统的性能测试。登录一个网站A,需要输入用户名密码,然后在访问另一个网站B,因为在网站A已经登录过,所以B应该不需要再登录,直接就可以访问B页面。让该员工测试下可以支持多少用户,及稳定性。 该员工使用loadrunner测试了2天,然后给我们报告说支持320左右个用户并发。 然后,我们跟他一起验证下,确实在320并发时就出现用户失败。但检查系统A与B,发现A确实登陆了,但B没有数据,后面他定位了半天也没解决问题,最后我帮他定位下,结果发现是发给B系统请求B页面的HTTP的会话信息里没有包括用户已经登陆的信息,会话在Cookie与URL的参数都存在。 还有另外一个问题,当时由于没研究loadrunner是如何模拟用户的,后来参与开发了kylinPET性能测试工具,才对性能工具的原理有深入的了解。其实之前loadrunner工具测试的并发用户数最大支持320,是错误的,大家可以看我写的“如何测试服务器的最大并发数”,网址:https://www.360docs.net/doc/1f8675688.html,/dow_6_1.html 1.2 该故事说明了什么 该故事说明了,一个熟练loadrunner的人进行系统性能测试,还是出现花费了2天多的时间是白费的,因为实际B系统还需要登录,因此无法访问B 页面。 为什么呢,因为他对业务了解不透,还有认为loadrunner回放通过就表示脚本没问题,虽然他做了一些关联参数,但脚本其实还是错误的。因此,会

使用性能测试工具只是一项技能,真正掌握性能测试,还需要结合业务与协议、网络知识,另外还需要掌握测试工具调试脚本方法。 1.3 在网络上经常出现求助帖:测试工具脚本回放成功,但实际是失败 在网络论坛上经常出现求助帖:测试工具loadrunner或jmeter的脚本回放成功,但检查后台,数据不存在或用户其实没登陆。 很多测试人员对系统不了解,有不懂HTTP协议,也不了解网页怎么产生的,然后就使用测试工具进行测试;有些人员会检查后台发现脚本有问题,但不会定位;有些经验丰富的人,知道怎么调试脚本,验证脚本,并定位问题修改;然而,有些新手或经验不足的测试人员会出现做无用功,而且还不知道自己做了无效的性能测试,因为他认为测试工具回放成功就表示OK。 其实,很多开发人员或设计人员也不能完全了解被测系统,另外也不了解HTTP协议,因为HTTP是底层的,都被封装了,如spring开发基本就不需要了解HTTP。所以,测试人员要掌握一些基本知识,如HTTP协议、基本的网络知识,还有掌握系统架构、场景、还有业务流程,也是很有技术含量的。 对于W EB学会使用浏览器调试功能或httpwatch了解系统业务交互流程,学习HTTP。如果有这样的基础,使用性能测试工具调试脚本就事半功倍啦。2 介绍怎么调试脚本(这里只介绍WEB) 很多测试人员或开发人员对HTTP或HTML不熟悉,很大可能还不了解业务细节,所以自己修改脚本有一定的难度,需要借助工具提供的调试功能来调试脚本。主要解决业务动态的地方:参数化、关联参数、Cookie。

QUARTUS2编译错误解决方法

Error(10257):Verilog HDL error at dp4inNpa.v(13):unsized constants are not allowed in concatenations 解决方法:拼接语句a_fout={0,exp_a_out,temp_a_out,12'd0};其中0应标注位宽,编辑器不会默认为1位,应为a_fout= {1'b0,exp_a_out,temp_a_out,12'd0}; Error(10053):Verilog HDL error at dp4inNpa.v(12):can't index object"a" with zero packed or unpacked array dimensions 解决方法:错:input a;对:input[12:0]a; Error:Net"acc[12]",which fans out to"accumulate:inst4|acc[12]", cannot be assigned more than one value Error:Net is fed by"time_get_sub:inst3|acc[12]" Error:Net is fed by"sample_en:inst6|acc_out[12]" 解决方法:输入的某些引脚同时给了两个值,大概不是重复定义管脚就是重复赋值了。 Error:Top-level design entity"delta_t"is undefined 解决方法:将.v文件名和module的名称改为一致 Error:Inconsistent dimensions for element"tR" 解决方法:"tR"在传递过程中可能丢失了"[12..0]"

水泥物理性能检验方法

水泥物理性能检验方法 1、目的 根据国家标准检验水泥标准稠度用水量、凝结时间、安定性是否符合国家的标准要求。 2、检验范围 a)通用硅酸盐水泥; 3、引用国家标准 a)GBl75-2007 通用硅酸盐水泥 b)GB/Tl346-2011水泥标准稠度用水量、凝洁时间、安定性检验方法 c) GB/T1345-2005水泥细度检验方法 d) GB/T8074-2008比表面积测定方法 4、仪器设备 a)、标准稠度与凝结时间测定仪。 b),水泥净浆搅拌机(NJ-160) c)沸煮箱(FZ-3lA) d)雷氏夹 e)量筒(50ml,100m1) f)天平(DJ-10002 0.01g/1000g) g) 负压筛析仪(FSY-150G) 通用作业指导书文件代号HBYS/QC01— 2012

第2页共15页 主题:水泥物理性能检验方 法版次/修改1/0 发布日期:2012年2月18日 h) 所用仪器设备应保证经过相关部门的检定,且应检定合格达到相应的精度,并在有效期内使用。 5、人员和实验条件 检验人员应是通过省级或省级以上部门培训合格且取得相应上岗证书的技术人员,应了解本站的《质量手册》及相关程序文件的质量要求,能熟练操作检验仪器设备并能处理一般例外情况的发生。试验室的温度(20±2)℃相对温度大于50%;水泥试样,拌和水、仪器和用具温度应与试验一致;湿气养护箱温度为20℃±1℃,相 对湿度不低于90%。 6、样品 试验前应按照程序文件《样品收发管理制度》检查试验样品的来源、性质、规格等技术指标和处置程序是否符合国家的要求。若 不符合应退回样品登记室,联系委托方重新取样,若符合进入检验环节。 7、标准稠度用水量的测定:(标准法)GB/Tl346-2011 7.1标准稠度用水量用符合JC/T727按修改后维卡仪标尺刻度进行测定,此时仪器试棒下端应为空心试锥,装净浆

性能测试流程规范汇编

目录 1前言 (2) 1.1 文档目的 (2) 1.2 适用对象 (2) 2性能测试目的 (2) 3性能测试所处的位置及相关人员 (3) 3.1 性能测试所处的位置及其基本流程 (3) 3.2 性能测试工作内容 (4) 3.3 性能测试涉及的人员角色 (5) 4性能测试实施规范 (5) 4.1 确定性能测试需求 (5) 4.1.1 分析应用系统,剥离出需测试的性能点 (5) 4.1.2 分析需求点制定单元测试用例 (6) 4.1.3 性能测试需求评审 (6) 4.1.4 性能测试需求归档 (6) 4.2 性能测试具体实施规范 (6) 4.2.1 性能测试起始时间 (6) 4.2.2 制定和编写性能测试计划、方案以及测试用例 (7) 4.2.3 测试环境搭建 (7) 4.2.4 验证测试环境 (8) 4.2.5 编写测试用例脚本 (8) 4.2.6 调试测试用例脚本 (8) 4.2.7 预测试 (9) 4.2.8 正式测试 (9) 4.2.9 测试数据分析 (9) 4.2.10 调整系统环境和修改程序 (10) 4.2.11 回归测试 (10) 4.2.12 测试评估报告 (10) 4.2.13 测试分析报告 (10) 5测试脚本和测试用例管理 (11) 6性能测试归档管理 (11) 7性能测试工作总结 (11) 8附录:................................................................................................ 错误!未定义书签。

1前言 1.1 文档目的 本文档的目的在于明确性能测试流程规范,以便于相关人员的使用,保证性能测试脚本的可用性和可维护性,提高测试工作的自动化程度,增加测试的可靠性、重用性和客观性。 1.2 适用对象 本文档适用于部门内测试组成员、项目相关人员、QA及高级经理阅读。 2性能测试目的 性能测试到底能做些什么,能解决哪些问题呢?系统开发人员,维护人员及测试人员在工作中都可能遇到如下的问题 1.硬件选型,我们的系统快上线了,我们应该购置什么样硬件配置的电脑作为 服务器呢? 2.我们的系统刚上线,正处在试运行阶段,用户要求提供符合当初提出性能要 求的报告才能验收通过,我们该如何做? 3.我们的系统已经运行了一段时间,为了保证系统在运行过程中一直能够提供 给用户良好的体验(良好的性能),我们该怎么办? 4.明年这个系统的用户数将会大幅度增加,到时我们的系统是否还能支持这么 多的用户访问,是否通过调整软件可以实现,是增加硬件还是软件,哪种方式最有效? 5.我们的系统存在问题,达不到预期的性能要求,这是什么原因引起的,我们 应该进行怎样的调整? 6.在测试或者系统试点试运行阶段我们的系统一直表现得很好,但产品正式上 线后,在用户实际环境下,总是会出现这样那样莫名其妙的问题,例如系统运行一段时间后变慢,某些应用自动退出,出现应用挂死现象,导致用户对我们的产品不满意,这些问题是否能避免,提早发现? 7.系统即将上线,应该如何部署效果会更好呢? 并发性能测试的目的注要体现在三个方面:以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题。

龙渲3DMax 2014安装VR2.4出现加载脚本错误的解决方法

龙渲3DMax 2014安装VR2.4出现加载脚本错误的解决方法 3Ds Max软件应用广泛,诸如动画制作、建模使用,是龙渲等渲染农场应用支持的主流软件之一。而在3Ds Max 2014安装VR2.4时,常常出现加载脚本错误问题。就此,龙渲提出的解决方法有二,第一个就是直接找到以下地址N:\ progfiles/autodesk/3ds Max2014/scripts/startup 中的这个文件名为vraylightlister.ms的文件,直接用记事本的方式打开,并找到113行中的“LightInspectorListRollout, ”这段代码,然后删除,再保存关闭即可。不过这种方法要找到113行并不容易,所以龙渲并不推荐,相对更推荐的是第二个方法。步骤如下: 1.打开Max,并点击MAXScript(X),选打开脚本 2.找到你的Max所在安装位置的根文件。 其实找文件的方式和第一个方法是一样的,都是找到N:\ progfiles/autodesk/3ds Max2014/scripts/startup 中的这个文件名为vraylightlister.ms。以下步骤所示的文件地址位置,都是以默认的安装地址为基准的,如果你已经更改了你的Max的安装地址,请以你具体的安装地址为准。不管你把地址改到哪了,都要从安装的根目录里面去找。也就是在3ds Max2014这个文件夹下的 scripts/startup

3、找到3ds Max2014这个文件夹 4、找到scripts这个文件夹

5、找到startup这个文件夹 6、找到vraylightlister.ms这个文件并打开

环氧树脂胶的物理特性及测试方法

环氧树脂胶的物理特性及测试方法 1. 粘度 粘度为流体(液体或气体)在流动中所产生的内部磨擦阻力,其大小由物质种类、温度、浓度等因素决定。按GB2794-81《胶粘剂测定法(旋转粘度计法)》之规定,采用NOJ-79型旋转粘度计进行测定。其测试方法如下:先将恒温水浴加热到40℃,打开循环水加热粘度计夹套至40℃,确认40℃恒温后将搅拌均匀的A+B混合料倒入粘度计筒中(选取中筒转子)进行测定。 2. 密度 密度是指物质单位体积内所含的质量,简言之是质量与体积之比。按GB4472之规定采用比重瓶测定。相对密度又称比重,比重为某一体积的固体或液体在一定温度下的质量与相同体积在相同温度下水的质量之比值。测试方法: 用分析天平称取清洁干净的比重瓶的重量精确到0.001g,称量数为m1,将搅拌均匀的混合料小心倒入(或抽入)比重瓶内,倒入量至刻度线后,用分析天平称其重量,精确到0.001g,称量数为m2。 密度g/ml=(m2- m1)/V (V:比重瓶的ml数) 3. 沉淀试验:80℃/6h<1mm 测试方法:用500ml烧杯取0.8kgA料放入恒温80℃热古风干燥箱内烘6小时,观其沉淀量。 4. 可操作时间(可使用时间)测定方法: 取35g搅拌均匀的混合料,测其40℃时的粘度(方法同1粘度的测定)记录粘度值、温度时间、间隔0.5小时后,再进行测试。依次反复测若干次观其粘度变化情况。测试时料筒必须恒温40℃,达到起始粘度值一倍的时间,即为可操作时间(可使用时间)。 5. 凝胶时间的测定方法: 采用HG-1A凝胶时间测定仪进行测定。取1g左右的均匀混合料,使其均匀分布在预先加热到150±1℃的不锈钢板中心园槽中开动秒表,同时用不锈钢小勺不断搅拌,搅拌时要保持料在圆槽内,小勺顺时针方向搅拌,直到不成丝时记录时间,即为树脂的凝胶时间,测定两次,两次测定之差不超过5秒,取其平均值。 6. 热变形温度

LoadRunner常见问题分析及解决办法

LoadRunner常见问题分析及解决办法 2010-09-23 08:02 在运行脚本回放过程中,有时会出现错误,这在实际测试中是不可避免的,毕竟自动录制生成的脚本难免会有问题,需要运行脚本进行验证,把问题都解决后才加入到场景中进行负载测试。下面结合常用的协议(如Web、Web Services协议)录制的脚本进行回放时出现的问题介绍一下解决的方法。 需要注意的是,回放脚本时出现的错误有时是程序自身的原因导致的,因此在解决脚本回放问题前必须保证程序录制出的脚本是正确的。 1.LoadRunner超时错误:在录制Web协议脚本回放时超时情况经常出现,产生错误的原因也有很多,解决的方法也不同。 错误现象1:Action.c(16): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)。 错误分析:对于HTTP协议,默认的超时时间是120秒(可以在LoadRunner 中修改),客户端发送一个请求到服务器端,如果超过120秒服务器端还没有返回结果,则出现超时错误。 解决办法:首先在运行环境中对超时进行设置,默认的超时时间可以设置长一些,再设置多次迭代运行,如果还有超时现象,需要在“Runtime Setting”>“Internet Protocol:Preferences”>“Advanced”区域中设置一个“winlnet replay instead of sockets”选项,再回放是否成功。 错误现象 2:Action.c(81):Continuing after Error -27498: Timed out while processing URL=http://172.18.20.70:7001/workflow/bjtel/leasedline/ querystat/ subOrderQuery.do 错误分析:这种错误常常是因为并发压力过大,服务器端太繁忙,无法及时响应客户端的请求而造成的,所以这个错误是正常现象,是压力过大造成的。 如果压力很小就出现这个问题,可能是脚本某个地方有错误,要仔细查看脚本,提示的错误信息会定位某个具体问题发生的位置。 解决办法:例如上面的错误现象问题定位在某个URL上,需要再次运行一下场景,同时在其他机器上访问此URL。如果不能访问或时间过长,可能是服务器或者此应用不能支撑如此之大的负载。分析一下服务器,最好对其性能进行优化。 如果再次运行场景后还有超时现象,就要在各种图形中分析一下原因,例如可以查看是否服务器、DNS、网络等方面存在问题。 最后,增加一下运行时的超时设置,在“Run-Time Settings”>“Internet Protocol:Preferences”中,单击“options”,增加“HTTP-request connect

橡胶物理性能测试标准

1.未硫化橡胶门尼粘度 GB/T 1232.1—2000未硫化橡胶用圆盘剪切粘度计进行测定—第1部分:门尼粘度的测定 GB/T 1233—1992橡胶胶料初期硫化特性的测定—门尼粘度计法 ISO 289-1:2005未硫化橡胶——用剪切圆盘型黏度计—第一部分:门尼黏度的测定 ISO 289-2-1994未硫化橡胶——用剪切圆盘型黏度计测定—第二部分:预硫化特性的测定ASTM D1646-2004橡胶粘度应力松驰及硫化特性(门尼粘度计)的试验方法 JIS K6300-1:2001未硫化橡胶-物理特性-第1部分:用门尼粘度计测定粘度及预硫化时间的方法2.胶料硫化特性 GB/T 9869—1997橡胶胶料硫化特性的测定(圆盘振荡硫化仪法) GB/T 16584—1996橡胶用无转子硫化仪测定硫化特性 ISO 3417:1991橡胶—硫化特性的测定——用摆振式圆盘硫化计 ASTM D2084-2001用振动圆盘硫化计测定橡胶硫化特性的试验方法 ASTM D5289-1995(2001) 橡胶性能—使用无转子流变仪测量硫化作用的试验方法 DIN 53529-4:1991橡胶—硫化特性的测定——用带转子的硫化计测定交联特性 3.橡胶拉伸性能 GB/T528—1998硫化橡胶或热塑性橡胶拉伸应力应变性能的测定 ISO37:2005硫化或热塑性橡胶——拉伸应力应变特性的测定 ASTMD412-1998(2002)硫化橡胶、热塑性弹性材料拉伸强度试验方法 JIS K6251:1993硫化橡胶的拉伸试验方法 DIN 53504-1994硫化橡胶的拉伸试验方法 4.橡胶撕裂性能 GB/T 529—1999硫化橡胶或热塑性橡胶撕裂强度的测定(裤形、直角形和新月形试样)

Jmeter性能测试之JAVA脚本编写

Jmeter性能测试脚本编写 一。jmeter使用简介 简单点说,使用jmeter就是新建个Test plan 在test plan 下建个Thread Group ,Thread Group 下新建个simpler来发起请求,然后新建个listener,一般选择View Results Tree和Aggregate Report 来收集请求的结果数据,View Results Tree 侧重于单个请求的具体结果,Aggregate Report 侧重于多次请求后平均计算的数据结果 具体的步骤网上有很多文章,这里不再详细述说了 这里介绍一下同步定时器(Synchronizing Timer):在该定时器处,使线程等待,一直到指定的线程个数达到后,再一起释放。可以在瞬间制造出很大的压力。没错,它和loadrunner 的集合点(rendezvous point)差不多的功能。为什么要用这个组件呢?因为在线程组中设置的线程是依次去访问请求的,不是多个线程一起同步去访问的。要是想模拟线上的多个用户同时并发访问的情况, 最好使用Synchronizing Timer来设置一下。 Number of Simulated User to Group:模拟用户到组数,即设置组的用户数,达到该用户数后才进行接口的请求 Timeout in milliseconds :超时(毫秒),设置超时时间,即组在超时时间后达不到设置的线程数时,会丢弃继续请求

这些配置完成后,生成的是一个jmx为后缀的文件,里面的内容是xml格式文件,是这样的: 二。使用jmeter API 来构建自己的请求 一般来说,被压测的接口常用的就是那几种:http, socket,webservice,soap 这些,这些类型请求都可以使用各种不同的sampler来构建,

matlab常见错误及处理办法

1.Subscript indices must either be real positive integers or logicals 中文解释:下标索引必须是正整数类型或者逻辑类型 出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab 的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。 解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。 2.Undefined function or variable "U" 中文解释:函数或变量 U 没有定义 .出错原因及解决办法:可能变量名输入错误,仔细检查 3.Matrix dimensions must agree 中文解释:矩阵的维数必须一致 出错原因:这是由于运算符(= + - / * 等)两边的运算对象维数不匹配造成的,典型的出错原因是错用了矩阵运算符。matlab 通过“.”来区分矩阵运算和元素运算。解决办法:自己调试一下程序,保证运算符两边的运算对象维数一致。 4.Function definitions are not permitted at the prompt or in scripts 中文解释:不能在命令窗口或者脚本文件中定义函数 出错原因:一旦在命令窗口写 function c = myPlus(a,b),此错误就会出现,因为函数只能定义在 m 文件中。关于脚本文件和 m 文件的区别请查阅 matlab 基础书。简言之: 1) 如果你写成 function 的形式,那么必须写在 m 文件中,且以function 开头(即 function 语句前不能包含其他语句,所有语句必须放在 function 中,当然,function 的定义可以有多个,各 function

C语言中link的错误解决方案

link错误-link4098 libcmtd.lib(tolower.obj) : error LNK2005: __tolower already defined in libcd.lib(tolower.obj) libcmtd.lib(tolower.obj) : error LNK2005: _tolower already defined in libcd.lib(tolower.obj) libcd.lib(crt0init.obj) : warning LNK4098: defaultlib "libcmtd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library Debug/VGS2DEBUGDLL.exe : fatal error LNK1169: one or more multiply defined symbols found Error executing link.exe. 解决方案:Project -> Settings -> Link -> project option中加入/nodefaultlib:"LIBCMTD" error LNK2001: unresolved external symbol _main解决办法 解决外部符号错误:_main,_WinMain@16,__beginthreadex 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有柚煤孟钅坎问? 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 1. Windows子系统设置错误, 提示: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: [Project] --> [Settings] --> 选择"Link"属性页,在Project Options中将/subsystem:console改成/subsystem:windows 2. Console子系统设置错误, 提示: LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 控制台项目要使用Console子系统, 而不是Windows, 设置: [Project] --> [Settings] --> 选择"Link"属性页,在Project Options中将/subsystem:windows改成/subsystem:console 3. 程序入口设置错误, 提示: msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16s 通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口: r

相关文档
最新文档