PatatiumWebUi
Это фреймворк для автоматизации тестирования WebUI, созданный основателем веб-сообщества Webdriver по имени «Картофель» (псевдоним). Фреймворк написан на языке Java и основан на открытом исходном коде Selenium WebDriver. Он объединяет TestNG, Selenium, WebDriver, JXL, Jodd-HTTP и другие инструменты.
Фреймворк основан на архитектуре объектной модели страницы (POM) и реализует ключевые технологии:
Также фреймворк предоставляет функции автоматического создания снимков экрана при неудачных тестах и генерации HTML-отчётов о тестировании, а также автоматической отправки отчётов по электронной почте.
На данный момент фреймворк не является полностью завершённым и требует дополнительной разработки. Для его изучения необходимо иметь базовые знания HTML и Java. В будущем планируется рассмотреть возможность автоматического кодирования.
При разработке проекта необходимо установить кодировку UTF-8, иначе могут возникнуть проблемы с отображением китайских символов.
Для просмотра API-документации нажмите на ссылку.
<?xml version="1.0" encoding="UTF-8"?>
<!--整个对象库文件的根目录,管理整个项目的对象-->
<map>
<!--管理一个页面的元素(webelement:input,select,textare,a,li等标签),一个page包含多个locator对象
Pagename:page对象名字,格式:org.webdriver.patatiumwebui.PageObject.xxxPage;最后面那位才是真正的页面名字,前面的是java对象库路径;另外注意,页面名字是头个单词大写;例如主页:名字定义为 org.webdriver.patatiumwebui.HomePage
Value:页面对象的URL,可不填。
Desc:页面对象中文描述-->
<page pagename="org.webdriver.patatiumwebui.pageObject.LoginPage" value="" desc="京东登录页面">
<!--管理一个页面的元素(webelement:input,select,textare,a,li等标签),一个page包含多个locator对象
Type:定位方式,包含id,name,class,linktext,xpath,css等,定位元素的时候灵活使用,一般可以统一用xpath
代替id,name,class,linktext的定位方式。
Timeout:元素加载时间,有些页面元素,可能要等待一段时间才能加载过来,为了查找元素的稳定性,需加等待时间。
Value:元素定位信息,如果是id,name,class,linktext直接把网页元素对应的这些属性值写上即可,如果是xpath定位方式,
需要填写正确的xpath语法格式。
Desc:元素的描述,元素的中文描述信息-->
<locator type="xpath" timeout="3" value="//input[@id='loginname']" desc="用户名">用户名输入框</locator>
<locator type="id" timeout="3" value="nloginpwd" desc="密码">密码输入框</locator>
<locator type="id" timeout="3" value="loginsubmit" desc="登录">登录按钮</locator>
</page>
</map>
package org.webdriver.patatiumwebui.action;
import org.webdriver.patatiumwebui.pageObject.LoginPage;
import org.webdriver.patatiumwebui.utils.ElementAction;
import org.webdriver.patatiumwebui.utils.TestBaseCase;
import java.io.IOException;
/**
* Created by zhengshuheng on 2016/8/29 0029.
*/
public class LoginAction extends TestBaseCase{
public LoginAction(String Url,String UserName,String PassWord) throws IOException
{
//此driver变量继承自TestBase变量
LoginPage loginPage=new LoginPage();
loginPage.open(Url);
System.out.println(driver.getCurrentUrl());
ElementAction action=new ElementAction();
action.clear(loginPage.密码输入框());
action.type(loginPage.用户名输入框(),UserName);
action.clear(loginPage.密码输入框());
action.type(loginPage.密码输入框(),PassWord);
action.click(loginPage.登录按钮());
}
}
Общий код действий находится в пакете src/main/java/org/webdriver/patatiumwebui/Action.
@Test(description="登录成功测试")
@Parameters({"BaseUrl"})//读取testng.xml参数
public void login(String BaseUrl) throws IOException
{
//调用登录方法,需输入正确的用户名和密码
LoginAction loginAction=new LoginAction(BaseUrl+"/new/login.aspx","11111","abc123");
action.sleep(2);
//设置检查点
Assertion.VerityTextPresentPrecision("jd_1111","输入正确的用户名和密码,验证是否成功进入主页");
//设置用例断言,判断用例是否失败
Assertion.VerityError();
}
Пример обычного тестового случая:
//数据驱动案例--start
@DataProvider(name="longinData")
public Object[][] loginData()
{
//读取登录用例测试数据
String filePath="src/main/resources/data/loginData.xls";
//读取第一个sheet,第2行到第5行-第2到第4列之间的数据
return ExcelReadUtil.case_data_excel(0, 1, 4, 1, 3,filePath);
}
@Test(description="登录失败用例",dataProvider = "longinData")
public void loginFail (String userName,string password,string message) throws IOException, DocumentException {
//代替testng参数化的方法
String BaseUrl= XmlReadUtil.getTestngParametersValue("testng.xml","BaseUrl");
//вызов метода входа
LoginAction
``` **Текст:**
Тест входа в систему успешно пройден.
*Файл testng.xml должен находиться в корневой папке проекта.*
**6. Выполнение теста**
IDE: в интегрированной среде разработки (IDE) используйте TestNG для запуска файла testng.xml.
Maven: выполните команды mvn clean и mvn test.
Jenkins:
1. Проверьте код проекта.
2. Укажите файл pom.xml.
3. Выполните команды mvn clean и mvn test.
**7. Просмотр отчётов о тестировании и журналов**
После завершения выполнения тестов автоматически отправляются электронные письма с отчётами и создаются файлы отчётов. В случае сбоя теста автоматически делаются снимки экрана, которые затем отображаются в отчёте. Также можно отобразить в отчётах информацию о стеке вызовов при сбое теста. Файлы отчётов создаются в каталоге test-out в корне проекта в виде файлов report.html. Отчёты выглядят следующим образом:
[Рисунок 1]
[Рисунок 2]
[Рисунок 3]
[Рисунок 4]
Электронные письма с отчётом выглядят так:
[Рисунок 5]
XPath подробно:
Можно использовать плагин Firebug или Firepath в браузере Firefox для проверки правильности XPath. Вот пример выражения XPath: //div[@id='abc']/form/div/input/span.
// — выбирает узлы из текущего местоположения без учёта их конкретного положения. Например: //div[@name='abc'].
/ — выбирает элементы от корневого узла. Например: /html/body/div[@id='myModalex'].
@ — указывает на атрибут. Атрибуты могут быть объединены с помощью операторов and или or. Например: //label[@class='col-sm-2 control-label' and @for='userName'].
Text() — находит элемент по его текстовому содержимому. Пример: //h2[text()='webdriver中文社区'].
Contains() — выполняет поиск элементов, содержащих указанный текст. Пример: //input[contains(@id,'nt')].
Пример гибкого использования:
Найти элемент:
八佰伴 嘎嘎嘎
В целом, при использовании XPath для определения местоположения элементов следует отдавать предпочтение атрибутам id и name. Если эти атрибуты отсутствуют, можно использовать другие атрибуты, такие как class.
Firebug используется для поиска элементов. Например, чтобы найти поле ввода имени пользователя, можно использовать выражение XPath //*[@id='userName'], которое ищет все элементы с атрибутом id, равным 'userName', на текущей странице. * обозначает все элементы.
Лицензия: GPL V2.0
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )