|
应用程序说明: .Net2.0, MySQL的数据库.
测试要求:两个客户端(连接到同一个MySql数据库)能同时做一个添加food的功能,如下图:
(说明:查看开发代码.添加这一条记录的主键值是从另一个表中读取出来的.从为添加当前记录主键的值.当添加成功后.再把主键表中的值向前加1.例:当前主键表中的值是10000,当点击OK按钮后.从主键表中知到这一条记录的主键值为10000,然后在food表中添加主键值为10000的记录,再把主键表的值更新为10001).
测试方法: 通过LR的.NET插件.代码如下:
public class VuserClass
{
LoadRunner.LrApi lr;
public VuserClass()
{
lr = new LoadRunner.LrApi();
}
public int Initialize()
{
return lr.PASS;
}
public int Actions()
{
FoodManagement foodManagement = new FoodManagement();
//添加foodmenu的操作.
//1.从主键表中得到当前的主键信息.
long FoodNo;
FoodNo = foodManagement.GetTableNo("t_foodmenu");
lr.think_time(3);
//下面是向添加Foodmenu的方法.
//插入集合点
// lr.rendezvous("添加foodmenu");
lr.start_transaction("T_AddFoodmenu");
byte[] imageByte=null;
foodManagement.AddFoodMenu(FoodNo,1000003,"kotei01","bread","面包",float.Parse("1.2"),float.Parse("1.3"),float.Parse("1.4"),float.Parse("1.5"),float.Parse("1.6"),(int)FoodNo,"Yes","Yes",imageByte);
lr.end_transaction("T_AddFoodmenu", lr.AUTO);
return lr.PASS;
}
public int Terminate()
{
// TO DO: Add virtual user's termination routines
return lr.PASS;
}
}
当在场景中时,只能成功一个VU.其它的失败.
这样是否说明这个并发是不成功的呢?这样的测试方法是否正确.还有其它测试方法.
[ 本帖最后由 jadeyu712 于 2010-1-15 10:28 编辑 ] |
|