这样做并发测试能行吗?(希望大家能帮忙.在此小弟非常感谢)在线等大家的帮忙?
应用程序说明: .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 编辑 ] 有12个看了.一句安慰的话也没有?哎! 看到.net的用Loadrunner做性能测试就头晕,用vsts自带的不好么。。。 现在还不会编码实现性能测试,都是用录制的:L ,帮你顶 是不是从主键表锁造成的?
回复 5# 的帖子
什么意思?能详细说明一下吗? 还是不行呀! 我很想跟你探讨这个问题,于是认真看了你写的问题描述,但感觉看后仍然很糊涂,不是很明白楼主的意思,希望楼主能踏下心来,仔细的描述一下问题,别有错别字啊。
回复 6# 的帖子
http://blog.csdn.net/zmhdgut/archive/2008/07/24/2705812.aspx这篇文章是介绍表锁的,表锁针对 多个用户同时对数据库的并发操作时造成数据不一致的问题.
你参考一下,对你的测试可能有帮助.
页:
[1]