Selenium AvatarWebUI 自动化测试工具

在路上 · 2018年06月01日 · 最后由 在路上 回复于 2018年07月31日 · 639 次阅读

前言

各位大佬编写的内容还在不断的学习中,希望大家多多赐教!

AvatarWebUI 支持的功能说明:

知识点: 遇到无法操作的弹窗, 用 js 的方式做:

//操作JS
    public void findelByJs(WebDriver driver, String action, SelenideElement element) {
        JavascriptExecutor js=(JavascriptExecutor)driver;
        js.executeScript(action,element);
    }

1、测试脚本

通过看飞哥的文章,发现原来 UI 的测试脚本可以这么直接简单。以一个 “登录” 功能为例,可以直接操作 page 里面的元素,非常的简单直接,飞哥的还要更简单、更牛逼。

public void loginLemall() throws InterruptedException {
        open("https://www.lemall.com/index.html");
        avatarDriver.page("homePage").element("loginButton").click();
        avatarDriver.page("loginPage").element("loginname").sendKeys("letv121312312@vip.letv.com");  //该账号无法登录,仅作为示例说明
        avatarDriver.page("loginPage").element("password").sendKeys("19249261");
        avatarDriver.page("loginPage").element("loginButton").click();
    }

2、页面元素

页面元素,直接以 json 文件存放。
关于页面元素如何定位:可看我之前总结的文章https://testerhome.com/topics/14220

3、测试报告 allure

根据飞哥和白志的文章,充分利用开源工具 allure,非常人性化。

  • 统计页面:
  • 用例信息页面

4、报警邮件

报警邮件,利用 jenkins 的 Editable Email Notification 插件,邮件内容定制。如下图所示:

5、报警邮件 html 内容

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>${PROJECT_NAME}-第${BUILD_NUMBER}次构建日志</title>
</head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
      offset="0">
<table width="95%" cellpadding="0" cellspacing="0"
       style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">

    <tr>
        <td>
            <h2>
                <font color="#0000FF">构建结果 - ${BUILD_STATUS}</font><br><font size="2">(本邮件是程序自动下发的,请勿回复!)</font>
            </h2>
        </td>
    </tr>

    <tr>
        <td><br />
            <b><font color="#0B610B">构建信息</font></b>
            <hr size="2" width="100%" align="center" /></td>
    </tr>
    <tr>
        <td>
            <ul>
                <li>项目名称 : ${PROJECT_NAME}</li>
                <li>构建编号 : 第${BUILD_NUMBER}次构建</li>
                <li>触发原因: ${CAUSE}</li>
                <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
                <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
                <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
            </ul>
            <br /></td>
    </tr>

    <tr>
        <td><b><font color="red">Test Informations</font></b>
            <hr size="2" width="100%" align="center" /></td>
    </tr>

    <tr>
        <td>Total:${TEST_COUNTS,var="total"},Pass:${TEST_COUNTS,var="pass"},Failed:${TEST_COUNTS,var="fail"},Skiped:${TEST_COUNTS,var="skip"}</td>
    </tr>

    <tr>
        <td>
            <br /><b><font color="red" size="2"> 详细内容见测试报告:</font></b><a href="${BUILD_URL}allure">${BUILD_URL}allure</a>
        </td>
    </tr>

    <tr>
    <td><br /><b><font size="2" color="red">失败的单元测试信息:</font></b>
    </td>
    </tr>
    <tr>
        <td>

            <textarea cols="80" rows="15" readonly="readonly"
                      style="font-family: Courier New">${FAILED_TESTS}</textarea>
        </td>
    </tr>

    <tr>
        <td><br /><b><font color="#0B610B">Changes Since Last Successful Build:</font></b>
            <hr size="2" width="100%" align="center" /></td>
    </tr>
    <tr>
        <td>
            <ul>
                <li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>
            </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat="    %p"}
        </td>
    </tr>


</table>
</body>
</html>
备注

目前只是实现了基本功能,关于 Web UI 自动化工具的其他功能,还在学习和实现中。。。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 17 条回复 时间 点赞

支持开源

回复

好的,回头开源

速度好快啊!

期待开源学习一下~

现在有 allure2 了吧?

18楼 已删除
程明远 回复

对,本人用的就是 allure2,不过操作手法差不多

在路上 回复

断言框架也是飞哥推荐的吗

在路上 回复

测试账号密码都挂出来真的没问题吗😂,注意下呀

邮件内容完整版 html,已经添加到文章最后

Total:${TEST_COUNTS,var="total"},Pass:${TEST_COUNTS,var="pass"},Failed:${TEST_COUNTS,var="fail"},Skiped:${TEST_COUNTS,var="skip"}
程明远 回复

目前用的 assert,飞哥推荐的 AssertJ 还没看怎么用

在路上 回复

没问题,因为不是真实账号,登录不进去的

allure2 能看到 某个 case 的 history 情况吗?

能看到,不过默认看到 5 条

在路上 回复

我今天也用了下 allure 有个问题 问下 ,是用 装饰器 让 测试套下面的每个 测试用例显示中文

像邮件报告里的 ${TEST_COUNTS} ${FAILED_TESTS} 我都没获取到? 这个是 跟怎么执行有关吗?我是用 shell 命令 执行 pytest

您好,前辈。请问这个框架现在可以开源了吗?想看看您的设计方案

程明远 回复

还没,回头找时间开源,谢谢支持

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册