zoukankan      html  css  js  c++  java
  • Testng优势

    选择Testng的理由:

    1.可指定执行顺序, dependsOnMethods 属性来应对测试的依赖性问题。

    2.·参数化1:轻轻松松从XML中得到参数

       @BeforeClass
        public void startTest(ITestContext context) {
            this.testContext = context;
            String browserName = context.getCurrentXmlTest().getParameter("browserName");
            driver = new SeleniumUtils();
            timeOut = Integer.parseInt(context.getCurrentXmlTest().getParameter("timeOut"));
            sleepTime = Integer.valueOf(context.getCurrentXmlTest().getParameter("sleepTime"));
            waitMillisecondsForAlert = Integer
                    .valueOf(context.getCurrentXmlTest().getParameter("waitMillisecondsForAlert"));
            webUrl = context.getCurrentXmlTest().getParameter("testurl");
            driver.openBrowser(browserName, webUrl, timeOut);
    
        }
    <suite name="Suite" parallel="none">
     <parameter name="browserName" value="chrome" />
     <parameter name="testurl" value="http://*********8080/****" />
     <parameter name="sleepTime" value="800" />
     <!-- 页面元素10秒不出现超时时间 -->
     <parameter name="timeOut" value="20" />
     <!-- 这个是等待alert弹出的时间 单位毫秒 -->
     <parameter name="waitMillisecondsForAlert" value="40000" />

    3.参数化二:@DataProvider,封装Excel、xml、JSON

      封装数据:

    /**
         * 测试数据提供者 - 方法
         */
        @DataProvider(name = "testData")
        public Iterator<Object[]> dataFortestMethod() throws IOException {
            String moduleName = null; // 模块的名字
            String caseNum = null; // 用例编号
            String className = this.getClass().getName();
            int dotIndexNum = className.indexOf("."); // 取得第一个.的index
            int underlineIndexNum = className.indexOf("_"); // 取得第一个_的index
    
            if (dotIndexNum > 0) {
                String packagename = className.substring(0, className.lastIndexOf("."));// 得到整个包名
                moduleName = packagename.substring(packagename.lastIndexOf(".") + 1);
                ; // 取到模块的名称
            }
    
            if (underlineIndexNum > 0) {
                String caseName = className.substring(className.lastIndexOf(".") + 1);// 得到类名
                caseNum = caseName.substring(caseName.indexOf("_") + 1, caseName.indexOf("_") + 4); // 取到用例编号
            }
            // 将模块名称和用例的编号传给 ExcelDataProvider ,然后进行读取excel数据
            return new ExcelDataProvider(moduleName, caseNum);
        }

      引用:

        @Test(dataProvider = "testData")
        public void login(Map<String, String> data) {
            LoginPage.login(data.get("USERNAME"), data.get("PASSWORD"),
                    data.get("CODE"));
            LoginPage.checkUserName(data.get("EXP_RESULT"));
        }

    4.测试报告(虽然自带的报告很丑,但可以经过二次开发,还是挺漂亮的,哈哈)

  • 相关阅读:
    Mysql 常用函数(15)- upper 函数
    Mysql 常用函数(14)- lower 函数
    Mysql 常用函数(13)- right 函数
    Mysql 常用函数(12)- left 函数
    Mysql 常用函数(11)- trim 函数
    Mysql 常用函数(10)- strcmp 函数
    Mysql 常用函数(9)- reverse 函数
    Mysql 常用函数(8)- concat 函数
    Mysql 常用函数(7)- length 函数
    影评1|发个以前写的影评《情书》
  • 原文地址:https://www.cnblogs.com/wujuan321/p/7346612.html
Copyright © 2011-2022 走看看