Упражнения - MSDN Blogs

advertisement
Лабораторная работа
Тестирование и отладка Sharepointприложений в Visual Studio 2013
Lab version:
12.0.21005.1
Last updated:
12/19/2013
СОДЕРЖАНИЕ
РЕЗЮМЕ ...................................................................................................................................................... 3
УПРАЖНЕНИЕ 1: СОЗДАНИЕ ЮНИТ-ТЕСТОВ С SHAREPOINT EMULATOR ..................................... 4
УПРАЖНЕНИЕ 2: INTELLITRACE ДЛЯ SHAREPOINT .......................................................................... 17
УПРАЖНЕНИЕ 3: ВЕБ И НАГРУЗОЧНОЕ ТЕСТИРОВАНИЕ SHAREPOINT-ПРИЛОЖЕНИЙ .......... 25
Резюме
Из этой лабораторной работы вы узнаете о функциональности Visual Studio 2013 для тестирования
и отладки Sharepoint-приложений.
Prerequisites
Для выполнения лабораторной работы вам понадобится виртуальная машина с Visual Studio 2013.
Подробнее про то, где загрузить и как ее использовать, здесь.
Упражнения
Эта лабораторная работа включает в себя следующие упражнения:
Создание юнит-тестов с SharePoint Emulator
IntelliTrace для SharePoint
Веб и нагрузочное тестирование Sharepoint-приложений
Примерное время выполнения лабораторной работы: 60 минут.
Упражнение 1: Создание юнит-тестов с
SharePoint Emulator
В этом упражнении вы научитесь использовать Sharepoint Emulator для юнит-тестов и удаления
ненужных зависимостей от SharePoint и SharePoint API, изолируя таким образом тесты и тестируя
только нужный кода.
Примечание: В виртуальной машине вы можете пронаблюдать ошибки и долгий процесс
открыти командного портала во время первого запуска сервисов Sharepoint.
В зависимости от используемого вами оборудования процесс загрузки может занимать
несколько минут, и просто продолжайте обновлять страницу. Если после нескольких минут
портал не открывается, проверьте, правильно ли вы настроили виртуальную машину – у нее
должен быть как минимум один сетевой адаптер (рекомендуем использовать internal).
Войдите под аккаунтом Adam (VSALM\Adam). Пароль: P2ssw0rd.
Запустите Visual Studio 2013 и откройте AppointmentsWebPart из
C:\SharePointDemos\AppointmentsWebPart (File | Open | Project/Solution…).
Изображение 1
Загрузка решения
Примечание: ссылка на Visual Studio 2013 в панели задач была настроена для запуска в
режиме администратора, что необходимо для некоторых действий с Sharepoint,
например, развертывания.
Решение содержит веб-часть для пользователя, использующего ее для назначения
напоминания. Нажмите правой кнопкой на AppointmentsWebPart в Solution Explorer и
выберите Deploy для развертывания и запуска локального сервера Sharepoint.
Изображение 2
Развертывание веб-части
В Internet Explorer откройте http://vsalm.
Изображение 3
SharePoint-сайт
Нажмите на Edit.
Изображение 4
Кнопка Edit
Поставьте курсор в начало страницы.
Изображение 5
Режим редактирования
Нажмите на Insert.
Изображение 6
Вкладка Insert
Нажмите на Web Part.
Изображение 7
Кнопка Web Part
Нажмите на категорию Custom, AppointmentsWebPart. Нажмите на Add для добавления
на страницу.
Изображение 8
Добавление на веб-часть
Нажмите на Save.
Изображение 9
Сохранение и закрытие
Веб-часть подразумевает наличие списка Appointments. Для создания этого списка
нажмите на иконку шестеренки в правом верхнем углу. Нажмите на ‘Add an app’.
Изображение 10
Переход к спискам
Нажмите на Appointments.
Изображение 11
Создание Appointments
Введите в название значение Appointments и нажмите на Create.
Изображение 12
Создание Appointments
Вернитесь на главную страницу сайта, нажав на Home в левой части меню.
Изображение 13
Возвращение на главную страницу
Протестируйте Appointment, заполнив поля любыми данными и нажав на Submit.
Изображение 14
Тестирование Appointments
В Appointments появилось новое напоминание.
Изображение 15
Новое напоминание
Посмотрим, как использовать SharePoint Emulator и Microsoft Fakes Framework для
разработки и выполнения юнит-тестов. SharePoint Emulator устанавливается через NuGet,
поэтому в Visual Studio нажмите правой кнопкой на AppointmentsWebPart.Tests и
выберите Manage NuGet Packages.
Изображение 16
Управление пакетами NuGet
Пакет Microsoft.SharePoint.Emulators для тестового проекта уже установлен. Пакет
загружает нужные сборки и добавляет ссылки в проект.
Изображение 17
Microsoft.SharePoint.Emulators добавлена в проект
Закройте Manage NuGet Packages.
Откройте UnitTest1.cs из проекта AppointmentsWebPart.Tests и найдите первый тестовый
метод, начинающийся с “ScheduleAppointment…” Этот метод использует для создания
тестового списка, добавления в него полей и использования веб-части Sharepoint Emulator.
Изображение 18
Определение юнит-теста
Большая часть кода выглядит как обычный Sharepoint-код, но весь код обернут в Using с
созданием экземпляра SharePointEmulationScope. Это нужно для перевода вызовов
Sharepoint в шимы (shims) эмулятора.
Изображение 19
SharePointEmulationScope
Нажмите на индикатор Test Status над методом. Нажмите на Run.
Изображение 20
Запуск юнит-теста
Тест успешно пройден.
Изображение 21
Тест в Sharepoint Emulator пройден успешно
Примечание: если юнит-тест не проходит, перезапустите Visual Studio 2013.
Второй тестовый метод создает список, вставляет в него записи и вызывает метод вебчасти GetAppointmentsForToday для того, чтобы возвратить все напоминания на текущую
дату. Метод также использует SharePointEmulationScope.
Изображение 22
Определение юнит-теста
Во время работы с Sharepoint Emulator вы можете обнаружить еще нереализованные
функции, в этом случае будет выброшено исключение NotSupportedException с
информацией о нереализованном шиме. GetAppointmentsForToday использует
SPList.GetItems, выбрасывающий NotSupportedException во время запуска установленного
на этой виртуальной машине Sharepoint Emulator.
Определить реализацию отсутствующего шима достаточно просто. Обратите внимание на
внешний тест, который запускает этот блок кода в режиме эмуляции.
Изображение 23
Реализация шима
Примечание: в этой реализации получается первый элемент списка вне зависимости от
переданного аргумента. Подробнее про Microsoft Fakes Framework, см. MSDN здесь.
Нажмите на Test Status над методом. Нажмите на Run.
Изображение 24
Результаты юнит-теста
Выполнять юнит-тесты можно с реальным экземпляром Sharepoint, переключив режим
эмуляции на пропуск всех шимов и передачу вызовов в настоящую сборку Sharepoint.
Измените в методе “GetAppointments…” код EmulationMode.Enabled на
EmulationMode.Passthrough.
Изображение 25
Настройка юнит-теста на пропуск эмулятора
Примечание: в реальном сценарии вы, возможно, захотите использовать код юнит-теста
в обоих режимах. Для этого вы можете определить, что режим эмуляции будет
использовать на уровне тестового класса, инициализировать тесты и делать очистку.
Автоматизировать процесс можно с помощью препроцессорных директив с
определением в файле тестового проекта или через командную строку. Подробнее про
это и SharePoint Emulator на MSDN здесь.
Измените Default Processor Architecture на X64 в Test | Test Settings.
Запустите тест, и в этот раз он будет выполняться для реального экземпляра Sharepoint, и
выполняться существенно дольше.
Изображение 26
Юнит-тест пропустил эмулятор
Упражнение 2: IntelliTrace для
SharePoint
В этом упражнении вы увидите, как использовать IntelliTrace для отладки Sharepoint-приложений.
Войдите под аккаунтом Adam (VSALM\Adam). Пароль: P2ssw0rd.
Запустите Visual Studio 2013 и откройте SharePointProject1 из
c:\SharePointDemos\SharePointProject1.
Откройте WebPart1.cs. Эта веб-часть определяет имя текущего пользователя и выводит
элементы интерфейса.
Изображение 27
Код веб-части
Нажмите правой кнопкой на SharePointProject1 и выберите Deploy.
В Internet Explorer откройте http://vsalm.
Нажмите на иконку шестеренки и выберите ‘Add a page’.
Изображение 28
Создание страницы
Введите название “IntelliTrace Demo” и выберите Create.
Изображение 29
Создание страницы
Нажмите на вкладку Insert.
Изображение 30
Вкладка Insert
Нажмите на Web Part.
Изображение 31
Кнопка Web Part
Нажмите на категорию Custom, веб-часть SharePointProject1 и нажмите на Add.
Изображение 32
Добавление веб-части
Вам откроется работающая веб-часть.
Изображение 33
Работающая веб-часть
Нажмите на Save.
Изображение 34
Сохранение страницы
Предположим, что в веб-часть добавили функцию, но пользователи сообщают об ошибках
при ее использовании. В Visual Studio раскомментируйте строку кода, выбрасывающую
исключение.
Изображение 35
Симуляция исключения
Нажмите правой кнопкой на SharePointProject1 и выберите Deploy.
Можно уже начать использовать IntelliTrace для сбора диагностических данных для
Sharepoint с использованием Powershell-модуля. Запустите IntelliTrace, нажав правой
кнопкой на StartIntelliTraceDemo.cmd и выбрав “Run as administrator”. Скрипт расположен
в C:\SharePointDemos.
Изображение 36
Запуск сессии IntelliTrace
Примечание: Подробнее про использование IntelliTrace в промышленной среде см.
лабораторную работу “Diagnosing Issues in Production with IntelliTrace and Visual Studio
2013”.
В Internet Explorer обновите страницу “IntelliTrace Demo”. Должна появиться страница
ошибки, возвращаемая Sharepoint. Это то, что видит пользователь и то, о чем сообщает
разработчикам. Разверните “Technical Details” и скопируйте Correlation ID в буфер обмена.
Изображение 37
Типичная ошибка Sharepoint с correlation ID
Запустите в режиме администратора StopIntelliTraceDemo.cmd для остановки IntelliTrace.
Изображение 38
Остановка сессии IntelliTrace
Скрипт IntelliTrace был настроен таким образом, чтобы складывать данные в
C:\LogFileLocation. Нажмите два раза на файле IntelliTrace для его открытия в Visual Studio.
Изображение 39
Файл лога IntelliTrace
В IntelliTrace Summary есть секция Analysis, показывающая необработанное исключение.
Можно было бы начать отладку уже сейчас, нажав на исключении, но посмотрим
информацию по Correlation ID. Скопируйте Correlation ID в пустое поле. Нажмите на View
Details.
Изображение 40
Просмотр информации по Correlation ID
В этом окне нам доступна информация типа вызванного URL, значения user agent и т.д.
Изображение 41
Информация о веб-запросе
Закройте это окно.
Нажмите на Debug Exception справа от исключения.
Изображение 42
Запуск отладки исключения
В режиме отладки Visual Studio 2013 показывает, где возникло исключение, и дает
стандартный инструментарий IntelliTrace.
Изображение 43
Отладка IntelliTrace
Закройте Visual Studio.
Упражнение 3: Веб и нагрузочное
тестирование Sharepoint-приложении
В этом упражнении вы увидите, как можно использовать инструменты веб и нагрузочного
тестирования Sharepoint-приложений. Подробнее про веб и нагрузочное тестирование см.
лабораторную работу “Introduction to Web Performance and Load Testing with Visual Studio
Ultimate 2013”.
Войдите под аккаунтом Adam (VSALM\Adam). Пароль: P2ssw0rd.
Запустите Visual Studio 2013 и откройте SP_Web_LoadTest_Demo из
c:\SharePointDemos\WebAndLoadTestProject1.
Это решение содержит тестовый проект с двумя веб-тестами и одним нагрузочным.
Изображение 44
Веб и нагрузочный тестовые проекты
Вплоть до Visual Studio 2012 Update 1 в целом было возможно записывать веб-тесты
Sharepoint, но нужно было проделать много ручных операций, большинство из которых
теперь автоматизированы. Выберите Tools | Options | Web Performance Test Tools | Web
Test | SharePoint в Visual Studio, чтобы посмотреть на доступные опции.
Изображение 45
Опции веб-тестирования SharePoint
Нажмите на Escape.
Откройте Upload.webtest. Этот веб-тест был записан во время открытия библиотеки
Shared Documents на сайте Sharepoint и отправки в эту библиотеку файла.
Изображение 46
Определение веб-теста
Разверните первый запрос к AllItems.aspx. Специфическое для SharePoint правило
извлечения было автоматически добавлено для того, чтобы получить ID списка и
сохранить его в виде параметра.
Изображение 47
Правило извлечения для SharePoint
Изображение 48
Свойства правила (нажмите на F4)
Параметр list ID используется в последующих запросах, например к Upload.aspx.
Изображение 49
Использование параметра list ID
Загруженный во время теста файл тоже использует параметры. Разверните второй вебзапрос к Upload.aspx и пролистайте до Form Post Parameters и выберите File Upload
Parameter. Это показывает нам, что, когда веб-тест будет запущен, для загружаемого
файла будет использовано уникальное имя.
Изображение 50
File Upload Parameter
Нажмите два раза на Download.webtest в Solution Explorer. Этот веб-тест был записан во
время открытия библиотеки Shared Documents на сайте Sharepoint и загрузки файла из
этой библиотеки.
Разверните второй запрос к Home.aspx. У него уже есть несколько правил извлечения для
Sharepoint, получающие значения List ID и View ID и сохраняющие их в виде параметров
для позднего использования.
Изображение 51
Правила извлечения SharePoint
Специфическое для SharePoint правило извлечения было автоматически добавлено для
того, чтобы получить ID файла и сохранить его в виде параметра в “SharePoint – Extract
Text on Key”.
Изображение 52
Использование правила извлечения
Есть множество полезных для веб-запросов к Sharepoint правил извлечения. Нажмите
правой кнопкой на одном из веб-запросов и нажмите на Add Extraction Rule.
Изображение 53
Кнопка Add Extraction Rule
Правила извлечения позволяют вам искать ID определенных списков и документов, даты,
значения текстовых полей и т.д.
Изображение 54
Правила извлечения SharePoint
Нажмите на the Escape.
Нажмите два раза на SPLoadTest1.loadtest в Solution Explorer. Это простой нагрузочный
тест, который половину своего времени использует веб-тест Download, другую половину –
Upload.
Изображение 55
Определение нагрузочного теста
Запустите тест, нажав на Run Load Test. Тест настроен на выполнение в течении 1 минуты.
Изображение 56
Кнопка Run Load Test
После выполнения вы увидите результаты, визуализировать которые можно, используя
представление Graphs.
Изображение 57
Результаты нагрузочного теста
Изображение 58
Графическое отображение результатов нагрузочного теста
To give feedback please write to VSKitFdbk@Microsoft.com
Copyright © 2016 by Microsoft Corporation. All rights reserved.
Download