Применение Selenium WebDriver для тестирования MS Dynamics CRM

в 3:28, , рубрики: .net, CRM-системы, ms dynamics crm, Тестирование IT-систем, метки:

В данной статье не будет рассказано, что такое Selenium и Selenium WebDriver – по этому поводу написано уже множество замечательных статей.

Здесь я хочу привести лишь небольшой пример того, как можно протестировать клиентский код в MS Dynamics CRM.

Но думаю, парой слов о Selenium WebDriver обмолвиться все же можно.
Итак, Selenium WebDriver – это библиотека, которая позволяет управлять браузером: давать браузеру какие-то команды, заполнять элементы UI, считывать значения, запускать скрипты.

Итак, поехали!

Перво-наперво создадим стандартный Unit Test Project.

Применение Selenium WebDriver для тестирования MS Dynamics CRM - 1

Visual Studio заботливо создаст для нас класс теста и метод теста – переименуем их в соответствии с нашей предметной областью.

Затем мы установим следующие штуки посредством nuget: Selenium.WebDriver и WebDriverIEDriver (коли IE является дефолтным браузером для MS Dynamics CRM).

Применение Selenium WebDriver для тестирования MS Dynamics CRM - 2

Ну почти всю работу мы сделали:)
Теперь остается написать только наш юнит-тест.

Проверять наш тест будет следующий case: существует два поля «Предполагаемая сумма» и «Взвешенная сумма», при этом «Взвешенная сумма» должна равняться 30% от «Предполагаемая сумма». И данное значение должно устанавливаться клиентским скриптом.

namespace CrmSeleniumUnitTest
{
    [TestClass]
    public class OpportunityTests
    {
        [TestMethod]
        public void WeightedSummCalculate()
        {
            decimal estimatedValue = 1000m;
            decimal expectedWeightedValue = estimatedValue * 0.3m;

            string contentFrame = "contentIFrame";
            string estimatedValueId = "estimatedvalue";
            string weightedEstimatedValueId = "isv_weightedestimatedvalue";
            string weightedEstimatedValueAttribute = "value";

            var driver = new InternetExplorerDriver();

            driver.Navigate().GoToUrl("https://test.crm.crm");
            
            driver.SwitchTo().Frame(contentFrame);

            var estimatedValueElement = driver.FindElement(By.Id(estimatedValueId));

            estimatedValueElement.Clear();
            estimatedValueElement.SendKeys(Keys.Tab);
            estimatedValueElement.SendKeys(estimatedValue.ToString(CultureInfo.InvariantCulture));
            estimatedValueElement.SendKeys(Keys.Tab);

            Thread.Sleep(10000);

            var weightedValueElement = driver.FindElement(By.Id(weightedEstimatedValueId));

            var actualWeightedValue = Decimal.Parse(weightedValueElement.GetAttribute(weightedEstimatedValueAttribute),CultureInfo.InvariantCulture);

            driver.Quit();

            Assert.AreEqual(expectedWeightedValue, actualWeightedValue);
        }
    }
}

Запускаем тест.

Применение Selenium WebDriver для тестирования MS Dynamics CRM - 3

Ну вот и все — коротенько и по делу:)

Автор: TheHedgehog

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js