51Testing丛书:性能测试进阶指南—LoadRunner 11实战(23)

发表于:2012-6-18 10:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈霁    来源:51Testing软件测试网原创

8.10  .NET Vuser

  当我们测试基于微软.NET技术的网站或者应用时都是通过协议的方式对服务器产生负载的,但是这种方式不足以支持代码级别的定位,当使用.NET Vuser协议时,我们可以使用该语言与LR进行代码的负载,从本质上可以解决很多问题。

  在LR 11的Patch2中提供了对VS 2010的支持,我们在Vugen中创建的.NET Vuser可以在VS 2010中开发了。在安装过程中需要注意安装顺序,否则可能会导致VS 2010转换过的代码无法在Vugen中运行的问题。个人推荐先安装VS 2010英文版,接着安装LR 11,再依次安装Patch1、Patch2补丁,避免不必要的问题。安装盘中提供了VS 2008 IDE插件,这个插件必须要在VS 2008存在的情况下才能使用,这里可以不用安装,安装后可以在VS中直接创建LR Vuser脚本。

  在Vugen中新建一个Microsoft .NET协议脚本,然后直接保存。在VS 2010中打开脚本目录中的script.sln项目文件,VS 2010会提示该项目需要升级为新的项目格式,确认完成,接着我们就可以看到在VS中已经可以对脚本进行开发了,如图8.35所示。

图8.35  在VS 2010中开发.NET用户脚本

  我们在Action中编写一个函数,在C#语法中所有的函数首关键字要用点号说明,所以以前在C语言中的lr_output_message()函数现在要写成lr.output_message()。代码编写完成编译后单击“保存”按钮,接着切回Vugen会提示代码已经更新,我们确认重新加载所有内容,这个时候就能在Vugen中看到在VS中编写的代码,接着运行这个代码,可以看到出现了我们期待的日志信息。

  .NET的最大作用就是扩展了脚本编写的空间,我们可以通过C#语言完成很多以前无法完成的操作,而使用LR来完成负载和响应时间监控。比如这里需要测试一下在C#中如果做一个整型数据从1累加到10000到底需要多少时间的性能测试,我们现在就可以轻松实现。在VS 2010中编写以下代码:

public int Action()
{
int i,t;
t = 0;
lr.start_transaction("for");
for (i = 0; i < 10000; i++)
{
t = t + i;
}
lr.end_transaction("for", lr.AUTO);
lr.output_message(t.ToString());
return 0;
}

  回到Vugen中运行可以看到事务for的事务时间:

Notify: Transaction "for" started.
Notify: Transaction "for" ended with "Pass" status (Duration: 0.0006).

  在整个脚本开发中VS提供了开发工具及编译支持,所以我们必须在VS中完成编译工作,脚本会被编译成一个.dll动态链接库的形式存放在脚本目录的bin目录下。

  在Vugen中运行Microsoft .NET脚本经常会出现MSBuild不支持版本的错误,就是因为没有在VS中完成编译导致的。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号