2012-04-18 2 views
2

여러 웹 성능 테스트가 포함 된 Visual Studio 2010로드 테스트가 있습니다. 웹 성능 테스트를 실행하려면 테스트중인 웹 사이트에 로그인해야합니다. 따라서로드 테스트에는 초기화 단계가 포함됩니다. 초기화 단계는 로그인을 수행하고 플러그인을 사용하여 얻은 쿠키를 캐시하는 작은 웹 성능 테스트입니다. '진짜'웹 성능 테스트 - 즉 캐시 된 쿠키를 읽고, 테스트에 추가 실제로 각 일을 할 사람은에 플러그인을 가질 수 있도록 제대로 각 테스트 기능 :로그인이 필요한 웹 성능 테스트 : 격리 및로드 테스트에서 어떻게 작동합니까?

public override void PreWebTest(object sender, PreWebTestEventArgs e) 
{ 
    if (CookieCache.Cookies != null) // CookieCache is a static class of mine 
     e.WebTest.Context.CookieContainer.Add(CookieCache.Cookies); 

문제 로드 테스트를 실행할 때이 모든 것이 절대적으로 훌륭하지만로드 테스트 초기화 프로그램이 실행되지 않으면 쿠키가 없기 때문에 웹 성능 테스트를 단독으로 실행할 수 없다는 것을 의미합니다. 따라서 웹 성능 테스트 로그인하지 않고 실패합니다.

이 상황에 대한 권장 해결책이 있습니까? 다시 말해, 웹 성능 테스트가 로그인해야 할 필요가있는 경우,로드 테스트의 일부일 때와 별도로 실행할 수있는 방법이 있습니까?

각 웹 성능 테스트를 개별적으로 실행하는 분명한 방법은 로그인 테스트를 먼저 호출하는 것이지만로드 테스트에 대해 잘못된 동작이 될 수 있으므로이를 수행 할 수 없습니다 로드 테스트 시작시 사용자 당 한 번만).

답변

0

Visual Studio 2010 부하 테스트에 익숙하지 않지만 단일 테스트 또는 모든 테스트를 선택한 경우 모든 테스트에 대해 NUnit의 SetUpTearDown 메서드를 실행해야합니다. 어셈블리.

bit of searchingInitTerm 테스트를 의미합니다.

1) 부하 테스트의 시나리오 노드를 마우스 오른쪽 버튼으로 클릭하고 편집 테스트 믹스를 선택합니다 ... 편집 테스트 혼합 대화 상자에서

2), 양식 하단에 봐. 2 개의 확인란을 참조하십시오. 하나는 초기 테스트 용이고 다른 하나는 용어 ​​테스트 용입니다.

초기화 테스트는 각 사용자보다 먼저 실행되며 사용자가 완료되면 용어 테스트가 실행됩니다. 테스트라는 용어가 실행되도록하려면 로드 테스트의 쿨 다운 시간을 설정해야합니다. 쿨 다운 시간은 실행 설정 노드 인 의 속성입니다. 이 설정을 사용하면 기간이 끝나면 테스트에 번지가 표시됩니다. 이 값을 5 분으로 설정할 수 있습니다. 재사용 대기 시간 은 반드시 5 분 동안 실행되지는 않습니다. 모든 기간 테스트가 완료되면 종료됩니다. 20 초가 걸리면 부하 테스트가 완료되면 이됩니다.

+0

도움을 주셔서 감사합니다 - 많이 감사합니다. 불행히도 귀하의 제안은 기본적으로 우리가 이미하고있는 것입니다. init 테스트를 추가하면 웹 성능 테스트가로드 테스트 * 중에있을 때 올바르게 작동한다는 것을 의미하지만로드 테스트 내부인지 여부에 관계없이 웹 성능 테스트가 항상 작동하도록하는 문제는 해결되지 않습니다. 로드 테스트 이외의 웹 성능 테스트를 실행하면 Init 테스트가 특정로드 테스트이므로 실행되지 않기 때문입니다. – PhantomDrummer

5

솔루션에 의해 ("웹 테스트에 삽입 전화"를 통해) 개인 웹 성능 테스트에 로그인 테스트를 추가 할 수 있지만 게이트하는 것입니다 없는의 찾습니다 조건부 규칙 "컨텍스트 매개하는 존재" 컨텍스트 파라미터 $ LoadTestUserContext. 이 매개 변수는 웹 테스트가로드 테스트에서 실행중인 경우에만 존재합니다.

이렇게하면로드 테스트의 내부 또는 외부에서 하나의 로그인 만 얻을 수 있습니다.

0

왜 시도하지 및

Public Overrides Sub PreRequest(sender As Object, e As PreRequestEventArgs) 
    MyBase.PreRequest(sender, e) 
    Dim cookie As System.Net.Cookie = New System.Net.Cookie(...) 
    e.Request.Cookies.Add(cookie) 

에게 PreWebTestFunction

대신 그 방법을 모두로드 테스트 및 작동 웹 테스트를 PreRequest 기능을 사용합니다.

관련 문제