更改简介

This commit is contained in:
彭宇琦 2021-01-29 08:17:29 +08:00
parent b00868ebd7
commit ea5abfbbe0
2 changed files with 10 additions and 9 deletions

View File

@ -158,13 +158,13 @@ public void addCase() {
在自动化脚本编写的实践过程中我发现selenium有以下的问题
1. WebDriver类构造比较麻烦特别是指向浏览器驱动的代码不容易记住每次编写脚本时都需要去复制之前的代码
2. 浏览器配置不方便,需要记住浏览器配置相关的代码,该代码没有智能提示
3. 元素定位方式无法专门维护selenium提供了一种维护元素定位方式的代码也是现在流行一时的PO模式但该模式我并未对其深究因为我仍发现该模式在调用时仍不方便,后面我会提到
3. 元素定位方式无法专门维护selenium提供了一种维护元素定位方式的代码也是现在流行一时的PO模式但该模式我并未对其深究因为我仍发现该模式在调用时仍不方便
4. 遇到存在iframe标签的元素时需要不断地切换窗体在切换频繁时容易出错
5. 进行元素操作时会因为各种各样的问题而报错,由于元素操作是独立的,所以需要为每一个元素操作都做一次判断,导致代码冗余
6. 等待机制使用便捷,同样需要进行封装
7. 元素操作分布在各个类中,不统一,导致同一个操作可能出现不同的代码,例如点击元素
以上我仅仅也只是大致总结了一些使用selenium代码时常见的问题但事实上在编写的过程还存在各式各样的小问题。针对这些不便的地方结合平时的脚本事件我便对selenium代码进行了一个二次封装把经常出现但又不得不写的代码进行了封装做成单一的方法进行调用以提高脚本编写的速度。代码详细的使用方法我会在Wiki的“Web UI自动化测试”文件夹中放入详细说明这里简单说明一下工具的使用步骤。
以上我仅仅也只是大致总结了一些使用selenium代码时常见的问题但事实上在编写的过程还存在各式各样的小问题。针对这些不便的地方结合平时的脚本事件我便对selenium代码进行了一个二次封装把经常出现但又不得不写的代码进行了封装做成单一的方法进行调用以提高脚本编写的速度。
#### 2.1 脚本编写需求
指定待测页面为Selenium API网站<br>
@ -358,7 +358,8 @@ public void oprateElement() {
${rs(CH,2, 3)} | 13000000000 | ${time()}
${rs(CH,2, 3)} | 13000000001 | ${time(-1d)}
${rs(CH,2, 3)} | 13000000002 | ${time(-2d)}
其中使用“${}”括起来的内容表示使用公式该公式可自定义具体可以参考Wiki中对数据驱动公式的解释。
其中使用“${}”括起来的内容表示使用公式,该公式可自定义。
#### 3.2 构造数据并使用
定义数据驱动文件后便可结合TestNG框架在@DataProvider中对数据驱动进行构造
@ -531,7 +532,6 @@ http.url("http://127.0.0.1:9000/find/findpreson")
.putHead(HeadType.CONTENT_TYPE_JSON)
.encoding("UTF-8");
```
具体用法可参考Wiki对接口工具的介绍。
### 5 数据库工具
同接口一样我对数据的操作也涉猎不深目前数据库工具只对jdbc执行SQL这一块进行了封装简化了执行SQL的代码以及连接数据库的代码。
@ -598,12 +598,11 @@ public void action() {
["3", "000003", "100003", "王五"]
["4", "000004", "100004", "赵六"]
```
在代码中使用到了表数据类TableData该类可用于存储同数据类型的表数据具体用法可在Wiki中进行查找
在代码中使用到了表数据类TableData该类可用于存储同数据类型的表数据。
### 6 其他工具
除以上介绍到的主要工具外,在项目中还定义了一些小工具,这些工具比较简单,但也经常使用,故将这一部分的代码也进行了封装,使其与上面介绍的大工具联系更紧密。
除以上介绍到的主要工具外,在项目中还定义了一些小工具,这些工具可用于造数据,简化复杂的操作等,故将这一部分的代码也进行了封装,使其与上面介绍的大工具联系更紧密。
这里对这些工具进行简单的介绍具体的用法可参考Wiki的介绍。
* 日期加减工具Time可根据日期单位对设定的时间进行增减操作并按照指定的格式进行输出。
* 随机字符串工具RandomString用于根据指定的字符串池随机从字符串池中抽取字符串拼接指定长度的随机字符串并返回的工具
* 常用随机内容返回工具PresetString用于返回常用的需要随机返回的词语。包括随机姓名、随机手机号码和随机身份证号等。
@ -613,4 +612,6 @@ public void action() {
* 表类型数据读取工具TableFileReadUtil用于读取表类型的文件数据支持文本文件doc/docx/txt格式文件、excel文件xls/xlsx格式文件或csv文件csv格式文件的读取。
## 后记
作为一个没有系统学习过开发的我而言能力实在有限代码质量也不高若您在使用上有什么的建议或在代码上有什么优化的方法还请您不吝教授于我我将万分感谢您的批评。若您也有兴趣维护该项目可拉取分支进行开发当然提交时还望您完整写好注释以便于使用和生成api文件。若您在工作上使用后有其他的功能需要封装可与我联系将需求告知于我我会抽时间出来开发您需要的功能。我的邮箱是465615774@qq.com。
作为一个没有系统学习过开发的我而言能力实在有限代码质量也不高对于设计模式也是一知半解的工具中很多的地方都是只追求实现。但有件事情希望在使用的您能明白作为测试工程师我们的代码不用上服务器运行、不用考虑多线程大多数情况下、不用考虑那0.01秒的响应。对于软件测试而言,最重要的是得到一个结果,即便代码的效率再不堪,也比我们人工测试来得快。我们追求代码应该是使用简单,快速得到数据,能简化测试工作就好,而不是一味地追求与开发工程师一样,使用各式各样的框架、设计模式,这样的代码首先使用就不方便,其次就是大多数人都看不懂,这就失去意义了。
当然以上只是我个人的感觉若与您的想法相未被还请您见谅。若您在使用上有什么的建议或在代码上有什么优化的方法还请您不吝教授于我我将万分感谢您的批评。若您也有兴趣维护该项目可拉取分支进行开发当然提交时还望您完整写好注释以便于使用和生成文档。若您在工作上使用后有其他的功能需要封装可与我联系将需求告知于我我会抽时间出来开发您需要的功能。我的邮箱是465615774@qq.com。

View File

@ -9,7 +9,7 @@
<packaging>jar</packaging>
<url>https://gitee.com/pyqone/autest</url>
<description>提供辅助软件测试工作的代码,提高软件测试工作效率</description>
<description>简化在测试工作中会使用到的代码,并提供工具类来辅助测试工作,提高测试工作效率</description>
<name>autest</name>
<properties>