[Web自动化测试笔记]——python + selenium + unittest + POM 自动化测试实战

python + selenium + unittest + POM 自动化测试实战

最近学习使用python + unittest进行wen自动化测试,写这篇笔记是重新整理一下项目思路和分析经验。
这边罗列出两个主要参考学习的帖子:
链接1: 不懂PO 设计模式?这篇实战文带你搞定 PO
链接2: 一文8个步骤从0到1实现Python+Selenium自动化测试项目实战

  学习是循序渐进的,我首先是根据链接2的测试需求进行需求梳理,编写线性测试代码(这里说一下,我本身就有python、selenium、unittest的学习基础,建议新手先学一下这几个工具);
然后参照链接1将代码改成POM模式。下面介绍一下:

1、项目框架

  POM模式分为从三个部分:基类:BasePage、页面类:xxxxPage、测试类TestCase。
  基类主要定义与浏览器相关的基础方法和一些基础操作。
页面类主要继承基类,对元素和元素操作进行封装,主要针对每个页面的功能进行操作;测试类:管理测试和执行测试用例。
  在学习的过程中发现,pom模型的设计有很多种,但是核心是以上说的三个部分的分工内容。
  该项目的测试需求可以参考链接2,这里我对链接2中的代码添加了断言和异常截屏功能。
[Web自动化测试笔记]——python + selenium + unittest + POM 自动化测试实战_第1张图片

2、BasePage

BasePage主要对基于浏览器的操作进行封装。
[Web自动化测试笔记]——python + selenium + unittest + POM 自动化测试实战_第2张图片
在这里插入图片描述

2、Index 首页

这边首页的功能是进入课程列表页(这里我将它看作导航页)
[Web自动化测试笔记]——python + selenium + unittest + POM 自动化测试实战_第3张图片

3、课程列表页

page类的封装是依据每个页面的功能,这里的课程列表页的功能是进入不同的课程详情页,这里不同的是切换页码时需要返回self
[Web自动化测试笔记]——python + selenium + unittest + POM 自动化测试实战_第4张图片

4、课程详情页

这里用测试课程01来举例说明。
由于我们需要判断测试课程01是否正常,因此要做一个断言,
这个页面功能,我将它用于获取课程的名称,与我们的预期结果进行比较。
在这里插入图片描述

5、测试用例类

这里设计对page页面的调用、断言、异常捕获等。
我在这里遇到一个问题供大家参考:在获取课程名称时,我没有设置强制等待,代码中course01_text变量中没有被赋值;在进行强制等待后,就会被赋值。
[Web自动化测试笔记]——python + selenium + unittest + POM 自动化测试实战_第5张图片
[Web自动化测试笔记]——python + selenium + unittest + POM 自动化测试实战_第6张图片
[Web自动化测试笔记]——python + selenium + unittest + POM 自动化测试实战_第7张图片
在这里插入图片描述

6、发送邮件

可参考上面链接2中的内容,里面邮箱的服务地址设置,开启smtp需要注意以下。

6、生成测试报告并执行

这也要用到HTMLTestRunner插件和Testsuite。
TestSuite主要对测试用例进行管理
HTMLTestRunner插件用于生成简单的测试报告
[Web自动化测试笔记]——python + selenium + unittest + POM 自动化测试实战_第8张图片

总结

POM模式的设计多种多样,主要还是得自己理解原理。
在编写代码的过程中最好自己手敲,有助于理解。之后还会对该项目进行数据驱动、日志监控和持续集成的工作。

你可能感兴趣的:(Web自动化测试,python,笔记,selenium)