selenium自动化测试框架

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、Selenium自动化测试基于python

1、Selenium简介

1.1 Selenium是一款主要用于Web应用程序自动化测试的工具集合。Selenium测试直接运行在浏览器中本质是通过驱动浏览器模拟浏览器的操作比如跳转、输入、点击、下拉等来拿到网页渲染之后的结果可支持多种浏览器如chormeFireFoxIE等。

1.2 Selenium WebDriver业界通用的测试框架不仅是web测试的标准同时在移动测试领域也是底层的核心驱动框架

1.3 Python是动态语言

1.4 Selenium包括一系列的工具组件

1Selenium IDE是嵌入到FireFox浏览器的插件用于在Firefox上录制和回放Selenium脚本虽然只能在Firefox下使用但它能将录制好的脚本转换成各种Selenium WebDriver支持的程序语言进而扩展到更广泛的浏览器类型

   2 Selenium WebDriver可支持多种语言用于操作浏览器的一套API支持各类型浏览器跨操作系统WebDriver为诸多语言提供完备的用于实现web自动化测试的第三方库

   3 Selenium Standalone Server包括Selenium Grid、远程控制、分布式部署等均可实现Selenium脚本的高效执行与拓展利用Grid使得自动化测试可以并行运行甚至在跨平台、异构的环境中运行

2、基于python的selenium WebDeriver环境安装

Selenium可以自动操纵浏览器来做很多如模拟与浏览器的交互而且支持到多数主流浏览器首先需要选择一门语言来编写自动化脚本而这门语言需要有Selenium client library支持选择Python

2.1 安装python和selenium不同安装版本可在平台下载

1安装selenium

Winpip install selenium
Mac:  pip3 install selenium

2安装WebDriver, 该工具供selenium使用Chrome。注webdriver需要和对应的浏览器版本以及selenium版本对应

 3WebDriver安装路径

 Win复制webdriver到Python安装目录下
 Mac复制webdriver到/usr/local/bin目录下

2.2 PyCharm设置

1PyCharm有两个版本社区版和专业版社区版是免费的可以下载使用

2 在使用PyCharm时需要配置Python的解释器我们选择支持selenium的Python版本解释器

3、Selenium WebDriver基于Python实现脚本

  3.1 根据webDriver提供的一系列对象定位方法获取元素实现测试用例

  3.2 webDriver常见的元素定位方法有

① id定位find_element_by_id()

② name定位find_element_by_name()

③ class定位find_element_by_class_name()

④ link定位find_element_by_link_text()

⑤ partial link定位find_element_by_partial_link_text()

⑥ tag定位find_element_by_tag_name()

⑦ xpath定位find_element_by_xpath()

⑧ css定位find_element_by_css_selector()
 

4、unittest编写单元测试并输出测试报告

仅使用Selenium WebDriver还有一些无法实现的比如 实现执行测试前置条件、测试后置条件比对预期结果和实际结果检查程序的状态生成测试报告等功能因此需要使用unittest来创建基于Python的Selenium WebDriver测试脚本

4.1 什么是unittest

Unittest一般也称为PyUnit是从java程序开发中广泛应用的Unit启发而来可以使用unittest为项目创建全面的测试套件unittest具备创建测试用例、测试套件测试夹具的能力

unitest组件

1Test Fixture测试夹具可以定义在单个或多个测试执行之前的准备工作和测试执行之后的清理工作

2Test Case测试用例unittest中执行测试的最小单元通过验证unittest提供的assert方法来验证一组特定的操作和输入以后得到的响应unittest提供了一个名为TestCase的基础类可以用来创建测试用例

3Test Suit测试套件一个测试套件是多个测试或测试用例的集合是针对被测程序的对应的功能和模块创建的一组测试一个测试套件内的测试用例将一起执行

4Test Runner测试执行器测试执行器负责测试执行调度并且生成测试结果给用户测试执行器可以使用图形界面、文本界面或者特定的返回值来展示测试执行结果

5Test Report测试报告测试报告展示所有执行用例的成功或者失败状态的汇总包括失败的测试步骤的预期结果和实际结果还有整体运行状况和运行时间的汇总

4.2 使用unittest来编写Selenium WebDriver测试

1Arrange初始化前置条件初始化被测试的对象相关配置和依赖

2Act执行功能操作

3Assert用来校验实际结果与预期结果是否一致

4.3 使用TestCase类来实现一个测试

 1集成TestCase类并且在测试类中为每一个测试添加测试方法来创建单个测试或者一组测试

2TestCase中的assert方法最主要的任务是 调用assertEqual()来校验结果assertTrue()来验证条件assertRaises来验证预期的异常除了添加测试还可以添加测试夹具setUp()方法和tearDown()方法

3一个测试用例是从setUp()方法开始执行因此可以在每个测试开始前执行一些初始化的任务此方法无参数也无返回值接着编写test方法这些测试方法命名为test开头这种命名约定通知test runner哪个方法代表测试方法

注test runner能找到的每个测试方法都会在执行测试方法之前先执行setUp()方法这样有助于确保每个测试方法都能够依赖于相同的环境。

4tearDown()方法会在测试执行完成之后调用用来清理所有的初始值

5为了能通过命令行测试我们可以在测试中添加对main方法的调用我们将传递verbosity参数以便使详细的测试结果展示在控制台

  测试用例代码如下图Testcase01.py如果测试通过则浏览器最后会退出如果出错的话控制台则会打印出相关信息

4.4 为一组测试创建TestSuite

   1 应用unittest的TestSuites特性可以将不同的测试组成一个逻辑组然后设置统一的测试套件并通过一个命令来执行具体通过TestSuites、TestLoader和TestRunner类来实现的

2使用TestSuites类来定义和执行测试套件将多个可测试加到一个测试套件中还可以用TestLoader和TextTestRunner创建和运行测试套件举例如下图TestSuites.py

4.5使用unittest扩展来生成HTML格式的测试报告

     unittest的扩展HTMLTestRunner可以实现生成测试报告。生成的的测试报告格式更加友好既能够查看测试结果又能深入各个细节。举例代码如下图testsuiteshtml.py

测试报告如下图TestReport

5、总结

     以上所写内容主要是selenium基于python使用WebDriver、Unittest组件使用元素定位方式完成测试用例输出测试报告的简单步骤具体实际操作中可能会遇到其它问题具体问题具体解决。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6