Как мога да стартирам нов потребител, когато искам в тест за натоварване на Visual Studio

Как мога да прекратя един виртуален потребител и да стартирам друг нов потребител по време на мое желание в тест за натоварване на Visual Studio (2012 ultimate).

За моята система трябва да извърша някаква дейност в цикъл. Има твърде много итерации и за твърде дълъг период от време, за да се изпълни всичко в един тест за уеб ефективност. Следователно трябва да имам тест за влизане и серия от други тестове за същия виртуален потребител. След някакъв неизвестен брой от тези други тестове системата изпраща съобщение „Вие приключихте“ в отговор. След това трябва да изляза и този виртуален потребител да завърши и друг виртуален потребител да започне.

Уебсайтът сам определя броя на дейностите и броят им не може да бъде предвиден предварително. Това е важен аспект от тестването. Уебсайтът задава въпроси на потребителя, следващият зададен въпрос и броят въпроси, които трябва да бъдат зададени, се избират динамично въз основа на различни фактори, включително предишните отговори на потребителите и отговорите на други потребители. В даден момент уебсайтът ще покаже съобщение „Благодарим ви, че отговорихте на тези въпроси“ и след това потребителят трябва да излезе. Разграничаването между съобщението Благодаря и въпрос е лесно в уеб теста и съответно излизане или отговор.

Това изглежда подобно на функцията, използвана от контрола на процента нови потребители. Но трябва да контролирам кога нов потребител започва въз основа на данни, намерени в уеб отговора.

След завършване на тестовете бих искал всеки хоризонтален ред в диаграмата Подробности в резултатите от теста за натоварване да показва едно влизане, променлив брой дейности и накрая едно излизане. Така всяко влизане трябва да стартира нов виртуален потребител.

Търсенето в мрежата на приставки за тестване на натоварване бързо намира начини за промяна на броя на виртуалните потребители, нагоре или надолу. Но няма резултати за контролиране на текущия виртуален потребител.


person AdrianHHH    schedule 12.08.2014    source източник


Отговори (2)


Доколкото знам, няма начин да контролирате виртуални потребители извън настройките на теста за натоварване.

Въпреки това нищо не пречи на работещ виртуален потребител да извърши излизане въз основа на отговор, след което да влезе с нов набор от идентификационни данни.

За теста за натоварване това е непрекъснато работещ един потребител, но за тестваната система това е завършване на потребител и стартиране на нов потребител.

person John O.    schedule 10.10.2014

Сблъсквал съм се с подобно препятствие от време на време и все още не съм намерил решение, което наистина да ми харесва като „крайното“ решение. Има обаче някои начини да се доближите до това, което искате.

Все още използвам Visual Studio 2010, но предполагам, че може да можете да направите това и в по-късните версии. Говоря и от гледна точка на използване на декларативни уеб тестове, а не кодирани. Сигурен съм, че същото може да се направи в кодиран уеб тест, но не работя директно с тях редовно.

Повечето от това, което искате да направите със съществуващите добавки. Сложната част може (и вероятно ще бъде) как обработвате данните от сесията след излизане на потребителя. Стъпките на високо ниво, ако разбрах правилно въпроса ви, ще бъдат:

  1. Изпълнете тест за инициализация за виртуален потребител (вашата част от теста за влизане.)
  2. Изпълнете вашите серии от тестове въз основа на един от профилите на натоварване
  3. Излезте от потребителя въз основа на конкретен отговор.
  4. Влезте с "нов" потребител след стъпка 3.

Сигурен съм, че вече сте изпълнили стъпки 1 и 2. Така че ще се съсредоточа върху идеи за стъпки 3 и 4.

Стъпка 3.

Тази стъпка може да се обработва като двуетапен процес в рамките на уеб теста(ите). Това предполага, че знаете кой отговор(и) ще генерира съобщението „Вие приключихте“.

  1. Правило за извличане за извличане на информацията от отговора.
  2. Условна стъпка, която се изпълнява въз основа на информацията, извлечена от вашето правило за извличане.

Във вашия условен оператор можете да изпълните своето излизане. Като се има предвид естеството на начина, по който искате да направите това, бих направил излизането отделен тест, който препращате... но алтернативно можете да вмъкнете заявката(ите) за излизане в условния раздел на теста.

Стъпка 4.

Най-простото нещо би било да извикате отново тест за влизане, веднага след излизането, в рамките на вашия условен цикъл. В зависимост от вида информация за сесията, от която се нуждаете, за да продължите през тестовете... това е частта, която може да стане трудна. Влизането обратно от уеб тест може да доведе до това някои данни, които са били поддържани от теста за инициализация, да станат невалидни. Като такъв ще трябва да се справите с това, като актуализирате съществуващите контекстни параметри. Ако нямате контекстни параметри, които да се пренасят между тестове от вашия тест за инициализация... значи сте готови.

Освен това, ако не искате "новият" потребител да влезе веднага след като съществуващият приключи... тогава ще е необходима допълнителна креативност.

Освен ако не трябва да променяте максималния брой виртуални потребители, никога не е необходимо да влизате с нов виртуален потребител. По-скоро можете просто да изпълните теста за влизане отново с този съществуващ виртуален потребител. Ако трябва да промените общия брой виртуални потребители, които са налични, тогава ще стане необходимо да проявите творчество с плъгини за тестване на натоварване. Има начини да го направите и някои добри примери могат да бъдат намерени в един от записите в блога на Sean Lumley: http://blogs.msdn.com/b/slumley/archive/2009/04/10/load-test-plug-ins.aspx

Надявам се тази информация да помогне.

person Daileyo    schedule 21.10.2014
comment
Благодаря ви, изясних въпроса. Броят на потребителите не е проблемът, а не откриването кога да се повтори или кога да се излезе. Искам контрол, когато виртуалните потребители (както е отчетено в диаграмата Подробности) завършват. - person AdrianHHH; 22.10.2014
comment
Никога не ми се е налагало да го правя сам, но все пак може да е възможно. Две възможности: създаване на ваш собствен персонализиран профил за зареждане или опит за създаване на плъгин за тест за зареждане, който изключва стойностите на UserContext.UserId или UserContext.IsNewUser. Вярвам, че тези две стойности ще ви дадат средство за контролиране на поведението на изпълнението на теста, специфично за виртуалния потребител. Въпреки това все още съм любопитен, защо е важно действителният виртуален потребител да се промени? Звучи ми така, сякаш докато виртуалният потребител започне нова сесия с уеб сайта, той все още ще постигне това, което искате. - person Daileyo; 22.10.2014
comment
Някои допълнителни подробности за въпроса ми: Докато виртуалният потребител започне нова сесия с нов тестов потребител, няма ли това да постигне това, което се опитвате да направите? Виждам, от вашето описание на изискванията за теста, къде би било необходимо всеки набор от тестове да се изпълнява като различен влязъл потребител, но изглежда, че би било възможно един виртуален потребител да премине през множество тестове потребители, в рамките на едно тестово изпълнение. - person Daileyo; 22.10.2014