数据驱动测试是自动化测试领域比较主流的设计模式之一,也是高级自动化测试工程师必备的技能之一。数据驱动框架是一种自动化测试框架,其目的在于可以让相同的脚本使用不同的测试数据,测试数据和测试行为(脚本)完全分离,便于测试的维护和扩展。
例如,测试登录操作时,需要用到多种用户来登录,然后验证系统的响应是否正确。这里,我们就可以先准备好要登录的用户数据(比如用户名和密码),只需一个自动化登录脚本即可实现。
数据驱动测试的一般步骤如下:
(1)编写脚本,脚本需要有可扩展性并且支持从对象、文件或者持久化数据库中读取测试数据。
(2)准备测试数据到文件或者数据库等外部介质中。
(3)循环调用介质中的数据库来驱动脚本执行。
(4)验证自动化测试结果。
在数据驱动框架中需要掌握 Python 对文件的基本操作等,在这一章中将详细讲解有关文件的相关操作。
Python 对文本文件的读取主要有三种模式:
1.read()
一次性读取文件,如果文件较大则占用内存较大。我们选择「w.txt」这个文件来做测试,如图 10.1 所示为内容截图:
图 10.1
测试代码如下:
测试结果如图 10.2 所示,read 函数也支持添加参数,比如输入参数 2 即为只输出前两个字符「ti」,返回值为字符串类型。这里需要注意,因为是读操作,所以文件权限设置为「r」。由于用到了 Python 中的字符串类「str」,所以可以使用单引号、双引号作为定界符。
图 10.2
2.readline()
特点是占用内存小、逐行读取、读取速度慢。我们以图 10.3 所示的文本文件内容为例,演示其用法,执行结果如图 10.4 所示。测试代码如下:
返回值为字符串类型。这种情况比较适合文本文件比较大的时候,因为文件越大,直接占用的内存就越大。
图 10.3
图 10.4
3.readlines()
其作用是一次性读取文本内容,并将结果存储在列表中。特点是,读取速度快,占用内存大。以上面的「w.txt」为例,改成用 readlines()之后,执行结果如图 10.5 所示。从返回数据也可以看出,readlines()的返回值是以列表形式进行存储的。
图 10.5
如要读取第一行数据,可以用 txt[0],相当于获取列表元素的第一个元素;如要读取第二行数据,需要用 txt[1]获取,以此类推。测试代码如下,执行结果如图 10.6 所示。
图 10.6
简单的文本文件写操作,以空文本文件「test.txt」为例进行测试,脚本源码及执行结果如图 10.7 所示,代码执行成功。在 test.txt 文件中添加的文本如图 10.8 所示为「testtest seleniumpython」。需要注意的是,这里打开文件所需要的文件权限为「w」。
图 10.7
图 10.8
第 10 章 数据驱动测试 Selenium 3+Python 3 自动化测试
原文:https://www.cnblogs.com/MarlonKang/p/13694632.html