之前在学习的时候,也是照葫芦画瓢,知其然而不知其所以然。今天在学习爬虫课程时,看到一个知识点,关于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版本不一致导致,但是按对应版本下载之后还是不行。等解决之后单独写一篇纪录一下。本篇主要是框架的总结
浙公网安备 33010602011771号