测试框架设计学习笔记 - 4
2018-04-01 22:07
351 查看
已经把课程基本看完,简单总结下Maven后面的内容:
Ant的基本使用(build.xml)。这里作为小白,我有些困惑,既然Maven已经可以提供从命令行拉起所有的testng测试,那ant在此有什么用?我在Q&A上向讲师提出这个问题,表示不太明白为什么这里需要学习ant,似乎Maven已经足够满足建立Jenkins+Maven+testNG+Selenium Webdriver这一套东西的需要了,讲师一天后回复:Maven和Ant是竞争对手关系…blabla。
Selenium的远程调用,Selenium Grid。在我目前的项目中,实际上没有采用这种做法(一个主机做host,然后控制其他主机来跑selenium测试),而是采用Jenkins的node机制,设置pipeline,当有新build过来后,会自动在某个node上,拉起Selenium Webdriver(+JUnit+Gradle)的测试,测试代码则是放在一个单独的GIT repository里,都是同一份代码,根据新build的不同,可能会跑不同的测试。我感觉我们项目中这样做是结构上更加简单,容易理解一些,操作起来也更方便。
Page Object的模式,这部分我已经比较熟悉了。
Java的OO。
至此这门课程就结束了,感觉后面几章,从讲Ant开始,讲课质量开始下降,且不说整门课程中,讲师写代码不遵循基本的Java Coding Style了,很多让强迫症如我者看着非常难受的各种随意缩进、函数间无空行、函数内多余的空行、Java函数和类的随意命名等等。
大线条的描述大概就是这样,具体到细节实现,课程中没有说,能想到的有web定位符、测试基类、页面的基类、测试的分类、参数化执行、driver工厂类、log的设置等等,以后都要细说。
顺便贴一下测试框架设计中某篇重量级文章里提到的框架设计的几个要点:
(1)选择合适的框架类型。
(2)不要重复发明轮子。
(3)可重用性。
(4)支持对不同版本的程序的测试。
(5)脚本的版本控制。
(6)脚本的开发调试与发布环境应该分离。
(7)外部可配置。
(8)自适应性。
(9)测试对象改变时,框架所需的修改应该最小化。
(10)框架的执行。
(11)状态监视。
(12)报告。
(13)修改框架时应该尽量不依赖自动化测试工具。
(14)框架应该易于调试。
(15)日志。
(16)易使用性。
(17)灵活性。
(18)性能。
(19)开发框架配套的外部工具。
(20)代码标准和规范。
Ant的基本使用(build.xml)。这里作为小白,我有些困惑,既然Maven已经可以提供从命令行拉起所有的testng测试,那ant在此有什么用?我在Q&A上向讲师提出这个问题,表示不太明白为什么这里需要学习ant,似乎Maven已经足够满足建立Jenkins+Maven+testNG+Selenium Webdriver这一套东西的需要了,讲师一天后回复:Maven和Ant是竞争对手关系…blabla。
Selenium的远程调用,Selenium Grid。在我目前的项目中,实际上没有采用这种做法(一个主机做host,然后控制其他主机来跑selenium测试),而是采用Jenkins的node机制,设置pipeline,当有新build过来后,会自动在某个node上,拉起Selenium Webdriver(+JUnit+Gradle)的测试,测试代码则是放在一个单独的GIT repository里,都是同一份代码,根据新build的不同,可能会跑不同的测试。我感觉我们项目中这样做是结构上更加简单,容易理解一些,操作起来也更方便。
Page Object的模式,这部分我已经比较熟悉了。
Java的OO。
至此这门课程就结束了,感觉后面几章,从讲Ant开始,讲课质量开始下降,且不说整门课程中,讲师写代码不遵循基本的Java Coding Style了,很多让强迫症如我者看着非常难受的各种随意缩进、函数间无空行、函数内多余的空行、Java函数和类的随意命名等等。
Selenium的自动化测试框架到底怎么从〇开始设计?
我粗浅的理解,首先需要知道页面设计模式(其实还需要工厂模式,用来返回不同的浏览器driver),基于页面模式来对各个Web页面进行描述,再可以在单元测试的框架下(testNG或者JUnit)写测试,整个代码项目可以用Maven进行管理。然后可以挂在Jenkins,作为一个下游测试job执行(可以设置为当Web项目的代码发生变化的时候,即可触发)。大线条的描述大概就是这样,具体到细节实现,课程中没有说,能想到的有web定位符、测试基类、页面的基类、测试的分类、参数化执行、driver工厂类、log的设置等等,以后都要细说。
顺便贴一下测试框架设计中某篇重量级文章里提到的框架设计的几个要点:
(1)选择合适的框架类型。
(2)不要重复发明轮子。
(3)可重用性。
(4)支持对不同版本的程序的测试。
(5)脚本的版本控制。
(6)脚本的开发调试与发布环境应该分离。
(7)外部可配置。
(8)自适应性。
(9)测试对象改变时,框架所需的修改应该最小化。
(10)框架的执行。
(11)状态监视。
(12)报告。
(13)修改框架时应该尽量不依赖自动化测试工具。
(14)框架应该易于调试。
(15)日志。
(16)易使用性。
(17)灵活性。
(18)性能。
(19)开发框架配套的外部工具。
(20)代码标准和规范。
相关文章推荐
- 测试框架设计学习笔记 - 1
- 测试框架设计学习笔记 - 2
- 测试框架设计学习笔记 - 3
- Android自动化测试框架Robotium学习笔记
- Selenium测试框架学习笔记
- jBPM学习笔记—框架设计简介
- Robot Framework测试框架学习笔记
- 设计模式学习笔记——状态(State)模式框架
- 深度学习框架Caffe学习笔记(6)-测试自己的手写数字图片
- 『框架设计(第2版)CLR Via C#』学习笔记(001)——将源代码编译成托管模块
- jBPM-jPDL学习笔记—框架设计简介
- LR性能测试框架学习总结(二)--controller场景设计
- 设计模式学习笔记——原型(Prototype)框架
- jBPM-jPDL学习笔记—框架设计简介(三)
- jBPM-jPDL学习笔记—框架设计简介(二)
- 『框架设计(第2版)CLR Via C#』学习笔记(002)——将托管代码合并到程序集
- JavaWeb学习笔记-java基础-1-测试框架junit
- jBPM-jPDL学习笔记—框架设计简介(四)
- Android自动化测试框架Robotium学习笔记
- Robot Framework测试框架学习笔记