Я использую JMeter для тестирования своего веб-приложения.
и мой тестовый пример заключается в добавлении записи в базу данных.
а затем я установил «количество пользователей потоков» на 20, это означает, что он будет симулировать работу 20 пользователей одновременно.
а затем я запускаю тестовый пример.
Но в конце концов я обнаружил, что система не создает 20 записей в базе данных, а просто создает 13 записей в базе данных.
Я хочу знать, почему это произошло?
Возможно ли это потому, что в моем веб-приложении я не добавил «синхронизированный» перед методом добавления записей? Я использовал 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;
}
}