是产品ID。为了提供这样的值,您可以创建一个被称为数据池的测试元素。
一个数据池是能够代替请求中字符串参数值的一个数值表。表1是数据池的一个例子;它提供了用户名和密码值并命名为"users"。您可以在一个特定的性能测试项目中创建任意多个数据池。然后,将数据池的入口同请求的具体部分结合起来即可。
表1:数据池的一个例子
Username
Password
SMYTH11
password11
SMYTH12
password12
SMYTH13
password13
SMYTH14
password14
SMYTH15
password15
一个数据池的内容可以从文件系统中的CSV格式的文件导入。CSV(comma-separatedvalue)文件可以用标准的文本编辑来创建,或是用大多数电子数据表程序来保存成CSV格式的文件。为了创建一个数据池,右键点击项目并选择New>Datapool,为数据池起一个名字,并制定要导入的CSV文件。一个数据池名称加上扩展名.datapool的文件在项目中被创建了;不再需要原始的CSV文件了。
创建好一个数据池后,您必须在数据池的内容可以被用作替代请求中的文本之前将它和测试联合在一起。操作这步,通过在TestNavigator中双击或在TestNavigator中右键点击并选择Open来打开您想要使用数据池的测试。在打开测试中,点击Add按钮并选择Datapool。在结果对话框中,选择您想要的数据池(扩展名为.datapool的文件,而不是CSV文件)。
既然您已经将数据池加入到测试中,在测试中您可以从中使用数值来代替记录内容。让我们来看一个例子。图3展示了之前记录的登陆WebSpherePortal站点的性能测试。在RequestAttributes窗格中,您可以看到在登录时提交的POST请求。用户名和密码字符串是参数wps.portlets.userid和password的值。PerformanceTester指出这些数值是代替数据池数值的很好的候选者,候选者是通过将文本颜色变成绿色来标识的。您从password参数中可以看到;userid参数的字符串被选中,这样您无法看见这里的绿色文本。(事实上,PerformanceTester在许多情况下改变显示文本的颜色作为一个形象的暗示来说明这里有比字符串本身更多的关于具体文本的信息。所有的这些指示器都能够被找到,也能够被编辑,在Eclipse中的Preferences窗口中:Window>Preferences>Test>PerformanceTestEditor。)
图3。在RequestAttributes中数据池候选者被突出的例
当您决定想要替代数据池数值的文本后,选择该文本并右键点击它。(在图3中,是SMYTH1。)在菜单上点击SubstituteFrom>DatapoolVariable,您将看到图4中的对话框。选择包含您想要的数值的那一栏,使用username,点击UseColumn按钮。
图4."Selectdatapoolcolumn"对话框
为了让登录能够正确地工作,您还需要用数据池的第二栏密码数值来代替password参数的值。在性能测试中,每次登录请求发起时,username和password的值将被从数据池下一行中获取。
执行手工数据关联
如果您在运行测试前知道每个请求中需要被替代的数值,您可以使用数据池。但是有时动态信息是由服务器产生的,并插入到请求中的。这可能包含会话标识符,数据库表引用号,以及其他有时加密的包含维持客户和服务器同步多请求事务所必须的状态信息的字符串。
另一个Web构架增长的需求特性是通过包含动态客户端处理去创建一个更丰富、更具响应能力的用户界面,这可能会使用像JavaScript或是Javaapplet的代码。当这些用户界面加起来使得用户的生活变得更加容易时,它们使得装载和性能测试者的生活更加困难,因为实际请求的URL被传递可能决定于客户端的一些动态操作,如果进行静态的记录,客户端也许无法重复。
如果您够幸运,以前的请求会提供给客户需要建造一个特殊请求的动态信息。接下来的事情就只是识别动态部分和在以前的响应中搜索它们的工作了。这个从以前的响应中获得内容的过程被用在后来的被称为数据关联的请求中。PerformanceTester能够帮助从以前的响应中关联请求数据,并且通过将文本颜色变成紫色来为关联标记候选者。然而,您对您的应用软件比PerformanceTester更为了解,因此您需要验证并可能手工的关联请求的内容。
让我们再来看看我们的性能测试例子。在图5中场景中的第三个步骤被展开以显示在用户登录到portal后发起的第一个请求:
图5。我们性能测试例子中的原始关联的请求
记录的URL如下:
/wps/myportal/!ut/p/kcxml/04_Sj9SPykssy0xPLMnMz0vM0Y_QjzKLN4h3dAPJgFiWrvqRqCbLGpugijnABb31fj_zcVP0A_YLc0NCIckdFAGQEfGM!/delta/base64xml/L3dJdyEvUUd3QndNQSEvNElVRS82XzBfOUo!
好长呀!您不可能能预见到URL为脚本中的每个用户和每次叠代做出的改变。但是用户需要获得这个信息去与之交流。如何使浏览器得知哪些请求要被发布呢?因此您必须在以前的产生于登录的响应数据中寻找这些信息。
通过下列步骤来执行手动数据关联:
清除任何PerformanceTester执行的自动关联。选择关联(紫色)文本,右键点击它,在显示的菜单上选择RemoveSubstitution。这会打破替代文本和它在以前响应中的源文件之间的联系。在我们的例子中,PerformanceTester关联了URL的开始,/wps/myportal/!ut/p/kcxml,但不是整个的URL,因此这个字符串的关联必须被打破。
选择要关联的文本,右键点击它,在显示的菜单中选择SubstituteFrom>FindMore。这将为所选择的文本搜索所有以前的响应,并在右边面板的ClassicSearch可见视图中产生联系的列表。见图6,IBMWebSpherePortal{2}步骤也被展开以显示匹配内容的合适的源文件,也就是从以前请求中得到的响应。
图6。寻找响应引用字符串
在您认为具有以前适当响应的ClassicSearch视图中点击链接(在我们的例子中只有一个链接),测试中登录步骤中合适的响应也将会被打开,同时选中搜索文本。如果这就是内容正确的源,右键点击选择的文本并在显示菜单上选择CreateReference。一个引用是某一个被在测试的其他地方重用大的文本片断的唯一标识。引用可以被用来作为在测试场景中条件(if/then)运行的测试参数,也可以被传递给定制的代码。见图7。
图7.创建一个新的引用
既然文本的引用已经建立,您需要回到您已经建立的请求中,并在请求中替代新建引用。在测试的第三步中选择URL(您刚搜索的文本),右键点击,并在显示菜单中选择SubstituteFrom。在结果菜单中您将看到引用列表,其中一个是您刚刚创建的。选择它,文本会变成紫色,显示它现在已经被关联上。见图8。如果您想要寻找用在该文本下的引用,重新选择它并选择GoTo.将会出现一个菜单选项,显示替代的引用;选择它将会跳回到适当的在我们的场景中第二步中的响应。
图8。代替请求中的引用
在我们的例子中,对于登录后的请求我们需要的URL是一个标准HTMLhref并且能够作为一个完整文本串。但并不总是这样。有时请求必须从许多引用中拼凑,从许多以前的响应中获得。这时您必须对每个文本构架搜索并创建引用,同时在您的请求中的正确的位置替代它们。
并且有时您必须在您替代它之前处理引用数据。引用文本可能拥有特征实体编码,这是在HTML中显示一些特征所必须的(例如,
for>,以及&for&),这些必须被解码才能用在请求中。客户端编码可以使用响应中的信息来创建后面更为复杂的文本替代请求。这种类型的修正需要您在性能测试中增加定制的代码,这些我将在以后的文章中进行解释。
??
??
??
??
II
2
56
上一篇:VB_net+SQL房地产评估系统(论文和程序)
下一篇:关于听觉掩蔽的语音增强算法及DSP实现