Selenium AvatarWebUI 自动化测试工具

zailushang · June 01, 2018 · Last by zailushang replied at July 31, 2018 · 4120 hits

前言

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

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了吧?

6Floor has been deleted
程明远 回复

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

zailushang 回复

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

zailushang 回复

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

zailushang #10 · June 03, 2018 作者

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

Total:${TEST_COUNTS,var="total"},Pass:${TEST_COUNTS,var="pass"},Failed:${TEST_COUNTS,var="fail"},Skiped:${TEST_COUNTS,var="skip"}
zailushang #11 · June 03, 2018 作者
程明远 回复

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

zailushang #12 · June 03, 2018 作者
zailushang 回复

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

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

zailushang #14 · July 02, 2018 作者
牛头人 回复

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

zailushang 回复

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

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

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

zailushang #18 · July 31, 2018 作者
程明远 回复

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up