之前在学习的时候,也是照葫芦画瓢,知其然而不知其所以然。今天在学习爬虫课程时,看到一个知识点,关于selenium框架。我想起来去年在写UI自动化的时候也用到了,此时貌似才恍然大悟。

我在工作中,会用到selenium框架,和unittest框架。

selenium(浏览器自动化测试框架)

  selenium是一个用于Web应用程序测试的工具。其实看到名字,就可以看出两个框架的区别,但是以前的我是不懂的。selenium是做浏览器驱动的一个库,用于功能自动化测试。直接在浏览器中运行,就像真的用户在操作一样。支持的浏览器包括IE(7、8、9、10、11)、Google chrome、Mozilla  Firefox、Safari、Opera等。selenium的核心,也称为browser bot,是用JavaScript编写的。selenium是一个开源软件。

功能

  • 框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击、输入、打开、验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。
  • 使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别
  • 使用简单,可使用Java,Python等多种语言编写用例脚本

python+selenium

要安装selenium库

  • cmd
  • pip install selenim
  • import selenium对应的库进行使用。一般用 from selenium import webdriver

浏览器需要下载一个driver文件。如。chromedriver.exe。

unittest框架

  unittest是Python自带的框架,主要用于单元测试,作用是用于编写和运行可重复的测试。在我的工作中,可以用来做接口测试,和爬虫。

  unittest对多个测试用例进行管理和封装,并通过执行输出测试结果。

  下面我们来了解下框架中的几个概念

  1、测试用例——testcase

      测试用例testcase是UnitTest中最重要的概念,测试就是由一个个测试用例组成的,而对于测试框架来说测试用例就是最底层的东西。unittest要求单元测试类必须继承unittest.TestCase。

  2、测试固件——testfixture

      测试固件testfixture整合了代码的公共部分。用于一个测试环境的准备和销毁还原。可以通过setup()和teardown()实现。

      setup():准备环境,执行每个测试用例的前置条件。通常用来做一些初始化操作。

      tearDown():环境还原,执行每个测试用例的后置条件

      setUpClass():必须使用@classmethod装饰器,所有case执行的前置条件,只运行一次

      tearDownClass():必须使用@classmethod装饰器,所有case运行完后只运行一次

  3、测试套件——testsuite

      测试套件是把多个测试用例集合到一起,形成测试用例集合

      

  4、测试运行器——testrunner

      测试运行器是给测试用例提供运行环境的,通过它的run()方法来执行测试用例。

补充一点,生成测试报告。

unittest测试框架作为python的内置框架,也并非十分完善,没有测试报告的额输出,不容于测试结果的保存。需要使用第三方模块HTMLTestRunner,是以html形式来保存测试结果的。

HTMLTestRunner无法通过pip安装,需要下载。将下载的py文件放在python目录的lib目录下。

下面用代码示意一下使用:

小结:

不同的框架有不同的作用,更好的帮助我们达到测试的目的。

接下来的目标是学习好工作中所用的框架。

示例图中的case执行是失败的,原因是使用send_keys()时候出现未知错误。

unknown error: call function result missing 'value'

查了一下是chromedriver版本和chrome版本不一致导致,但是按对应版本下载之后还是不行。等解决之后单独写一篇纪录一下。本篇主要是框架的总结

 

posted on 2019-08-07 17:50  Brynn  阅读(8)  评论(0)    收藏  举报