UI自动化测试(一)

UI自动化环境的搭建(python+selenium+unittest+VScode)

一、脚本语言:

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

下载地址:https://www.python.org/downloads/
安装:(1)安装时勾选ADD python 3.6 to PATH 选项,然后一直默认安装就可以了。(2)检查python环境是否安装成功,在cmd中输入python -V出现以下提示说明安装成功了。在这里插入图片描述

二、编译器工具Visual Studio Code

非常推荐,写代码的神器。一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。

(1) 下载路径:https://code.visualstudio.com/
(2) 安装方法:默认安装即可
(3) 插件安装:python、Chinese
UI自动化测试(一)_第1张图片
三、浏览器Google及对应版本的驱动
(1)Google下载地址:https://www.google.cn/intl/zh-CN/chrome/
(2)驱动下载:http://chromedriver.storage.googleapis.com/index.html
(3)使用方法:webdriver.Chrome(executable_path=”驱动的路径”)
四、自动化测试工具Selenium

Selenium是用于WEB端自动化的测试工具,我们通过selenium来操作网页达到模拟功能测试的目的。Selenium通过编程语言客户端去调用浏览器驱动来实现操作浏览器,支持各个浏览器,也支持Java、python等多种语言。

(1)安装方式:在cmd中输入pip3 install selenium
(2)使用方法:在python文件中,使用import导入,如下:
UI自动化测试(一)_第2张图片
(3)静态定位元素的八种方式:
UI自动化测试(一)_第3张图片
(4)常用方法
UI自动化测试(一)_第4张图片
五、单元测试框架Unittest

Unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。

(1)unittest框架的构成:
TestCase 也就是测试用例
TestSuite 多个测试用例集合在一起,就是TestSuite
TestLoader是用来加载TestCase到TestSuite中的
TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。
(2)断言方式:
assertEqual(a, b) a和b相等
assertNotEqual(a, b) a和b不相等
assertTrue(x) x的值为True
assertFalse(x) x的值为False
assertIsNone(x) x为空
assertIsNotNone(x) x 不为空
assertIn(a, b) a 包含在 b中
assertNotIn(a, b) a 不包含在 b中
在这里插入图片描述
补充:

		JS弹出窗元素的定位方式:
		获取弹出框文本:driver.switch_to.alert.text
		点击确定:driver.switch_to.alert.accept()
		点击取消:driver.switch_to.alert.dismiss()
		设值:driver.switch_to.alert.send_keys()

(3)测试报告HTMLTestRunner
因为unittest没有自带的html报告,所以我们需要加入另外一个模块HTMLTestRunner,这个模块需要安装在当前目录下,使用执行测试用例就会生成一个html的测试报告,里面会有每个测试用例的执行结果。
UI自动化测试(一)_第5张图片
输出的报告样例如下:
UI自动化测试(一)_第6张图片
总结:
1、unittest是Python自带的单元测试框架,我们可以用其来作为我们自动化测试框架的用例组织执行框架。
2、unittest的流程:写好TestCase,然后由TestLoader加载TestCase到TestSuite,然后由TextTestRunner来运行TestSuite,运行的结果保存在TextTestResult中,我们通过命令行或者unittest.main()执行时,main会调用TextTestRunner中的run来执行,或者我们可以直接通过TextTestRunner来执行用例。
3、一个class继承unittest.TestCase即是一个TestCase,其中以 test 开头的方法在load时被加载为一个真正的TestCase。
4、verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告、2 是详细报告。
5、可以通过addTest和addTests向suite中添加case或suite,可以用TestLoader的loadTestsFrom__()方法。
6、用 setUp()、tearDown()、setUpClass()以及 tearDownClass()可以在用例执行前布置环境,以及在用例执行后清理环境
7、我们可以通过skip,skipIf,skipUnless装饰器跳过某个case,或者用TestCase.skipTest方法。
8、参数中加stream,可以将报告输出到文件:可以用TextTestRunner输出txt报告,

你可能感兴趣的:(UI自动化测试(一))