我使用 JMeter 来测试我的 Web 应用程序。我的测试用例是在数据库中添加一条记录。然后我将“线程用户数”设置为20,这意味着它将模拟20个用户同时工作。然后我运行测试用例。但最后我发现系统并没有在数据库中创建 20 条记录,而是在数据库中创建了 13 条记录。
我想知道为什么会这样?是否有可能因为在我的 Web 应用程序中我没有在添加记录方法前面添加“同步”?我使用linq,如果两个用户同时向服务器发布创建记录的请求,会发生什么?只创建一条记录还是可以成功创建两条记录,还是未知?
以下是在数据库中创建记录的示例代码:
public int SaveEventGroup(int id, Models.Entities.EventGroup e, Nullable<int> setpublish)
{
try
{
Entities.EventGroup db;
if (id == 0)
{
db = new Entities.EventGroup();
db.CreatedBy = e.CreatedBy;
db.CreateDatetime = DateTime.Now;
db.Status = true;
}
else
{
db = this.GetEventGroup(id);
}
db.NameCN = e.NameCN;
db.NameEN = e.NameEN;
db.NameZH = e.NameZH;
db.NamePT = e.NamePT;
db.DisplayOrder = GetGroupMaxDisplayOrder() + 1;
if (setpublish == null)
{
db.PublishStatus = false;
db.PublishDatetime = null;
db.UpdateDatetime = DateTime.Now;
db.UpdatedBy = e.UpdatedBy;
}
if (id == 0)
dataContext.AddToEventGroupSet(db);
dataContext.SaveChanges();
return db.Id;
}
catch (Exception ex)
{
log.Error(ex.Message, ex);
throw ex;
}
}