Перейти к содержимому

Фотография

Запуск параллельных тестов на С# в "Майкрософтовой" среде


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 gambler_max

gambler_max

    Новый участник

  • Members
  • Pip
  • 9 сообщений


Отправлено 12 февраля 2016 - 05:47

Привет всем!

Нужен совет "как сделать, где почитать". Возможно вопрос для профи покажется детским, но до прошлой недели в жизни не сталкивался с тестами на C#, VisualStudio видел последний раз ровно 5 лет назад (кстати 2015 очень понравилась), а из всех остальных продуктов Майкрософта знаю только Офис и Виндовс 10 (точнее - теперь знаю Виндовс 10)

Итак есть продукт, представленный версий для iOS, Android (as a hybrid app), Web версии для десктопов и странной подверсией для просмотра веб версии на мобилках и прочих iPad'aх

Есть идея сделать фреймворк поверх селениума и еще одного тулза, кторый бы позволял запускать один и тот-же тест-кейс на всех платформах. Идея здравая и уже частично реализованная.

Но теперь стоит задача параллельного запуска тестов по следующему принципу - тест-кейс запускается параллельно на вcех платформах при помощи микрософтных продутов (Jenkins не канает к сожалению).

 

Вообщем- где прое это можно покурить применительно к C# и его фреймворкам и окружению от Микрософта?

 

(блин как же все это просто решалось на питоне)

 

 

 

 


  • 0

#2 bobylev

bobylev

    Активный участник

  • Members
  • PipPip
  • 77 сообщений
  • ФИО:Бобылев Максим

Отправлено 12 февраля 2016 - 08:18

Добрый день.

Любые тесты на C# можно запустить из собранных dll проекта с помощью консольной утилиты mstest. Тесты селениума не исключение.

mstest /testcontainer:"c:\Builds\TestProject.dll" /testsettings:"c:\Builds\ParallelRun.testsettings " /Resultsfile:c:\result.trx

 

В настройках testsetings можно указать прочие параметры:

<?xml version="1.0" encoding="UTF-8"?>

<TestSettings
	id="ac1c6f73-7f56-48dd-adcb-72a3d1e2c5e6"
	name="ParallelUiRun"
	enableDefaultDataCollectors="false"
	xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
	<Description>These are default test settings for a local UI test run.</Description>
	<Deployment enabled="false" />
	<Execution parallelTestCount="10">
		<Timeouts runTimeout="10800000" testTimeout="3540000" />
		<TestTypeSpecific>
			<UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
				<AssemblyResolution>
					<TestDirectory useLoadContext="true" />
				</AssemblyResolution>
			</UnitTestRunConfig>
			<WebTestRunConfiguration testTypeId="4e7599fa-5ecb-43e9-a887-cd63cf72d207">
				<Browser name="Internet Explorer 9.0" MaxConnections="6">
					<Headers>
						<Header name="User-Agent" value="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" />
						<Header name="Accept" value="*/*" />
						<Header name="Accept-Language" value="{{$IEAcceptLanguage}}" />
						<Header name="Accept-Encoding" value="GZIP" />
					</Headers>
				</Browser>
			</WebTestRunConfiguration>
		</TestTypeSpecific>
		<AgentRule name="LocalMachineDefaultRole">
		</AgentRule>
	</Execution>
	<Properties />
</TestSettings>

  • 0

#3 bobylev

bobylev

    Активный участник

  • Members
  • PipPip
  • 77 сообщений
  • ФИО:Бобылев Максим

Отправлено 12 февраля 2016 - 08:29

Ну и зачастую использование студии подразумевает использование TFS как системы хранения версий и планирования работ. В этом случае просто вставляете прогон прямо в билд:

https://www.visualst...sts-with-builds


  • 0

#4 gambler_max

gambler_max

    Новый участник

  • Members
  • Pip
  • 9 сообщений


Отправлено 12 февраля 2016 - 15:28

Спасибо большое. 

А не могли бы вы точно меня "ткнуть" как запустить сразу на несколько платформ. Предположим есть тест-кейс "Логин" и его надо прогнать сразу на Firefox, iOS, Android and Chrome on Android (для каждой свой девайс реальный выделяется)

Спасибо


  • 0

#5 bobylev

bobylev

    Активный участник

  • Members
  • PipPip
  • 77 сообщений
  • ФИО:Бобылев Максим

Отправлено 15 февраля 2016 - 07:37

На каждую платформу свои автотесты? Или автотесты универсальны?

Самый простой вариант в лоб - добавить к тесту категорию. 

[TestMethod]
[Description(@"")]
[TestCategory("Login")]
[TestProperty("TestCase", "377035")]
public void LoginToUi()
{

}

Один из параметров mstest - запуск по категории. Если в файле настроек указан параллельный запуск, то все тесты в категории стартанут параллельно.

 

Еще вариант тесткейсы сгруппировать по классам. Т.е. все кейсы на логин в классе Tests.ApplicationName.Login и скармливать mstest класс.

 

P.S. Мои знания в вопросе запуска на девайсах исключительно теоретические. В нашем проекте гоняем тесты только на одной платформе

 

А можете рассказать, какие плюсы дает запуск параллельно одного сценария на всех устройствах? Навскидку, не смог придумать обоснования такого сценария.


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных