Skip to content

Latest commit

 

History

History
86 lines (66 loc) · 2.64 KB

README.md

File metadata and controls

86 lines (66 loc) · 2.64 KB

Knife

WebUI automation testing framework based on Selenium

本框架参考了Degger: https://github.com/NetEase/Dagger

介绍: Knife基于Selenium(WebDriver)进行了简单的二次封装,比Selenium所提供的原生方法操作更简单。Knife参考了Dagger,功能做了简化。

特点:

  • 简单封装有selenium原生的方法,使用更加简单。
  • 同样支持有多种定位方式(id,name,class,linkText,xpath,css)。
  • 结合TestNG单元测试框架,可以完整实现自动化用例的组织、运行和生成报告。
  • 加入arrow之后,可以实现用例失败之后重试,重试次数也可自由配置;大大增加了用例的稳定性。
  • 自带了丰富的例子,可以帮助你学习和使用Knife。

推荐使用:

  • 集成开发工具:IntelliJ IDEA
  • 项目管理:Maven

依赖框架与库:

例子: 请查看com.knife.demo以及login.knife.demo目录

import core.knifeException;
import org.testng.annotations.*;
import static org.testng.Assert.assertEquals;

import core.BrowserEmulator;

/**
 * The demo to show Knife and TestNG basic usage
 * @author bugmaster
 */
public class BaiduDemo {

    BrowserEmulator driver;
    String baseUrl;

    String searchBox = "id=>kw";
    String searchBtn = "id=>su";

    @BeforeMethod
    public void setUp() throws knifeException {
        baseUrl = "https://www.baidu.com";
        driver = new BrowserEmulator();
    }

    // 定义对象数组
    @DataProvider(name = "search")
    public Object[][] Keys() {
        return new Object[][] {
                {"Java"},{"testNG"},{"arrow"},{"Knife"}, };
    }

    @Test(dataProvider = "search")
    public void testSearch(String searchKey) throws InterruptedException {
        driver.open(baseUrl);
        driver.type(searchBox, searchKey);
        driver.click(searchBtn);
        Thread.sleep(2000);
        assertEquals(driver.getTitle(), searchKey+"_百度搜索");
    }

    @AfterMethod
    public void tearDown() {
        driver.quit();
    }
}

设置用运例运行失败重试次数:

  • 打开项目根目录下的 config.properties 文件,修改 retrycount 参数值。

切换不同的浏览器或模式:

  • 打开项目根目录下的 prop.properties 文件,修改 BrowserType 参数值。

浏览器驱动下载与配置: http://www.testclass.net/selenium_java/selenium3-browser-driver/