JMeter를 사용하여 웹 응용 프로그램을 테스트합니다. 내 테스트 사례는 데이터베이스에 레코드를 추가하는 것입니다. 그리고 "thread user의 수"를 20으로 설정하면 동시에 20 명의 사용자가 작업하는 것을 시뮬레이션한다는 것을 의미합니다. 그리고 나서 테스트 케이스를 실행합니다. 하지만 마침내 나는 시스템이 데이터베이스에 20 개의 레코드를 생성하지 않고 대신 데이터베이스에 13 개의 레코드를 생성한다는 사실을 알게되었습니다.데이터베이스에 10 개의 레코드가없는 이유는 무엇입니까?
왜 이런 일이 발생했는지 알고 싶습니다. 내 웹 응용 프로그램에서 레코드 추가 메서드 앞에 "synchronized"를 추가하지 않았기 때문에 가능합니까? 나는 두 사람이 동시에 서버에 레코드를 만들 요청을 게시하는 경우 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;
}
}
데이터를 데이터베이스에 삽입 할 때 실행되는 SQL 문을 게시 할 수 있습니까? –
다른 드라이브 바이 게시. Helloooo, MemoryLeak. SQL 게시! –
아니요, 저는 Linq 만 사용합니다. SQL이 없습니다! – MemoryLeak