导航:首页 > 编程语言 > python数据驱动测试

python数据驱动测试

发布时间:2023-07-12 09:09:20

python - pytest

目录

pytest是Python的单元测试框架,同自带的unittest框架类似,但pytest框架使用起来更简洁,效率更高。

pytest特点

安装

测试

在测试之前要做的准备

我的演示脚本处于这样一个的目录中:

踩坑:你创建的pytest脚本名称中不允许含有 . ,比如 1.简单上手.py ,这样会报错。当然,可以这么写 1-简单上手.py

demo1.py :

上例中,当我们在执行(就像Python解释器执行普通的Python脚本一样)测试用例的时候, pytest.main(["-s", "demo1.py"]) 中的传参需要是一个元组或者列表(我的pytest是5.2.2版本),之前的版本可能需要这么调用 pytest.main("-s demo1.py") ,传的参数是str的形式,至于你使用哪种,取决于报不报错:

遇到上述报错,就是参数需要一个列表或者元组的形式,而我们使用的是str形式。

上述代码正确的执行结果是这样的:

大致的信息就是告诉我们:

pytest.main(["-s", "demo1.py"])参数说明

除了上述的函数这种写法,也可以有用例类的写法:

用法跟unittest差不多,类名要以 Test 开头,并且其中的用例方法也要以 test 开头,然后执行也一样。

执行结果:

那么,你这个时候可能会问,我记得unittest中有setup和teardown的方法,难道pytest中没有嘛?你怎么提都不提?稳住,答案是有的。

接下来,我们来研究一下pytest中的setup和teardown的用法。

我们知道,在unittest中,setup和teardown可以在每个用例前后执行,也可以在所有的用例集执行前后执行。那么在pytest中,有以下几种情况:

来一一看看各自的用法。

模块级别setup_mole/teardown_mole

执行结果:

类级别的setup_class/teardown_class

执行结果:

类中方法级别的setup_method/teardown_method

执行结果:

函数级别的setup_function/teardown_function

执行结果:

小结

该脚本有多种运行方式,如果处于PyCharm环境,可以使用右键或者点击运行按钮运行,也就是在pytest中的主函数中运行:

也可以在命令行中运行:

这种方式,跟使用Python解释器执行Python脚本没有什么两样。也可以如下面这么执行:

当然,还有一种是使用配置文件运行,来看看怎么用。

在项目的根目录下,我们可以建立一个 pytest.ini 文件,在这个文件中,我们可以实现相关的配置:

那这个配置文件中的各项都是什么意思呢?

首先, pytest.ini 文件必须位于项目的根目录,而且也必须叫做 pytest.ini 。

其他的参数:

OK,来个示例。

首先,(详细目录参考开头的目录结构)在 scripts/test_case_01.py 中:

在 scripts/test_case_dir1/test_case02.py 中:

那么,在不同的目录或者文件中,共有5个用例将被执行,而结果则是两个失败三个成功。来执行验证一下,因为有了配置文件,我们在终端中(前提是在项目的根目录),直接输入 pytest 即可。

由执行结果可以发现, 2 failed, 3 passed ,跟我们的预期一致。

后续执行相关配置都来自配置文件,如果更改,会有相应说明,终端都是直接使用 pytest 执行。

我们知道在unittest中,跳过用例可以用 skip ,那么这同样是适用于pytest。

来看怎么使用:

跳过用例,我们使用 @pytest.mark.skipif(condition, reason) :

然后将它装饰在需要被跳过用例的的函数上面。

效果如下:

上例执行结果相对详细,因为我们在配置文件中为 addopts 增加了 -v ,之前的示例结果中,没有加!
另外,此时,在输出的控制台中, 还无法打印出 reason 信息,如果需要打印,则可以在配置文件中的 addopts 参数的 -s 变为 -rs :

如果我们事先知道测试函数会执行失败,但又不想直接跳过,而是希望显示的提示。

Pytest 使用 pytest.mark.xfail 实现预见错误功能::

需要掌握的必传参数的是:

那么关于预期失败的几种情况需要了解一下:

结果如下:

pytest 使用 x 表示预见的失败(XFAIL)。

如果预见的是失败,但实际运行测试却成功通过,pytest 使用 X 进行标记(XPASS)。

而在预期失败的两种情况中,我们不希望出现预期失败,结果却执行成功了的情况出现,因为跟我们想的不一样嘛,我预期这条用例失败,那这条用例就应该执行失败才对,你虽然执行成功了,但跟我想的不一样,你照样是失败的!

所以,我们需要将预期失败,结果却执行成功了的用例标记为执行失败,可以在 pytest.ini 文件中,加入:

这样就就把上述的情况标记为执行失败了。

pytest身为强大的单元测试框架,那么同样支持DDT数据驱动测试的概念。也就是当对一个测试函数进行测试时,通常会给函数传递多组参数。比如测试账号登陆,我们需要模拟各种千奇百怪的账号密码。

当然,我们可以把这些参数写在测试函数内部进行遍历。不过虽然参数众多,但仍然是一个测试,当某组参数导致断言失败,测试也就终止了。

通过异常捕获,我们可以保证程所有参数完整执行,但要分析测试结果就需要做不少额外的工作。

在 pytest 中,我们有更好的解决方法,就是参数化测试,即每组参数都独立执行一次测试。使用的工具就是 pytest.mark.parametrize(argnames, argvalues) 。

使用就是以装饰器的形式使用。

只有一个参数的测试用例

来看(重要部分)结果::

可以看到,列表内的每个手机号,都是一条测试用例。

多个参数的测试用例

(重要部分)结果:

可以看到,每一个手机号与每一个验证码都组合一起执行了,这样就执行了4次。那么如果有很多个组合的话,用例数将会更多。我们希望手机号与验证码一一对应组合,也就是只执行两次,怎么搞呢?

在多参数情况下,多个参数名是以 , 分割的字符串。参数值是列表嵌套的形式组成的。

固件(Fixture)是一些函数,pytest 会在执行测试函数之前(或之后)加载运行它们,也称测试夹具。

我们可以利用固件做任何事情,其中最常见的可能就是数据库的初始连接和最后关闭操作。

Pytest 使用 pytest.fixture() 定义固件,下面是最简单的固件,访问主页前必须先登录:

结果:

在之前的示例中,你可能会觉得,这跟之前的setup和teardown的功能也类似呀,但是,fixture相对于setup和teardown来说更灵活。pytest通过 scope 参数来控制固件的使用范围,也就是作用域。

比如之前的login固件,可以指定它的作用域:

很多时候需要在测试前进行预处理(如新建数据库连接),并在测试完成进行清理(关闭数据库连接)。

当有大量重复的这类操作,最佳实践是使用固件来自动化所有预处理和后处理。

Pytest 使用 yield 关键词将固件分为两部分, yield 之前的代码属于预处理,会在测试前执行; yield 之后的代码属于后处理,将在测试完成后执行。

以下测试模拟数据库查询,使用固件来模拟数据库的连接关闭:

结果:

可以看到在两个测试用例执行前后都有预处理和后处理。

pytest中还有非常多的插件供我们使用,我们来介绍几个常用的。

先来看一个重要的,那就是生成测试用例报告。

想要生成测试报告,首先要有下载,才能使用。

下载

如果下载失败,可以使用PyCharm下载,怎么用PyCharm下载这里无需多言了吧。

使用

在配置文件中,添加参数:

效果很不错吧!

没完,看我大招

Allure框架是一个灵活的轻量级多语言测试报告工具,它不仅以web的方式展示了简洁的测试结果,而且允许参与开发过程的每个人从日常执行的测试中最大限度的提取有用信息。
从开发人员(dev,developer)和质量保证人员(QA,Quality Assurance)的角度来看,Allure报告简化了常见缺陷的统计:失败的测试可以分为bug和被中断的测试,还可以配置日志、步骤、fixture、附件、计时、执行 历史 以及与TMS和BUG管理系统集成,所以,通过以上配置,所有负责的开发人员和测试人员可以尽可能的掌握测试信息。
从管理者的角度来看,Allure提供了一个清晰的“大图”,其中包括已覆盖的特性、缺陷聚集的位置、执行时间轴的外观以及许多其他方便的事情。allure的模块化和可扩展性保证了我们总是能够对某些东西进行微调。

少扯点,来看看怎么使用。

Python的pytest中allure下载

但由于这个 allure-pytest 插件生成的测试报告不是 html 类型的,我们还需要使用allure工具再“加工”一下。所以说,我们还需要下载这个allure工具。

allure工具下载

在现在allure工具之前,它依赖Java环境,我们还需要先配置Java环境。

注意,如果你的电脑已经有了Java环境,就无需重新配置了。

配置完了Java环境,我们再来下载allure工具,我这里直接给出了网络云盘链接,你也可以去其他链接中自行下载:

下载并解压好了allure工具包之后,还需要将allure包内的 bin 目录添加到系统的环境变量中。

完事后打开你的终端测试:

返回了版本号说明安装成功。

使用

一般使用allure要经历几个步骤:

来看配置 pytest.ini :

就是 --alluredir ./report/result 参数。

在终端中输入 pytest 正常执行测试用例即可:

执行完毕后,在项目的根目下,会自动生成一个 report 目录,这个目录下有:

接下来需要使用allure工具来生成HTML报告。

此时我们在终端(如果是windows平台,就是cmd),路径是项目的根目录,执行下面的命令。

PS:我在pycharm中的terminal输入allure提示'allure' 不是内部或外部命令,也不是可运行的程序或批处理文件。但windows的终端没有问题。

命令的意思是,根据 reportresult 目录中的数据(这些数据是运行pytest后产生的)。在 report 目录下新建一个 allure_html 目录,而这个目录内有 index.html 才是最终的allure版本的HTML报告;如果你是重复执行的话,使用 --clean 清除之前的报告。

结果很漂亮:

allure open
默认的,allure报告需要HTTP服务器来打开,一般我们可以通过pycharm来完成,另外一种情况就是通过allure自带的open命令来完成。

allure的其他用法
当然,故事还是没有完!在使用allure生成报告的时候,在编写用例阶段,还可以有一些参数可以使用:

allure.title与allure.description

feature和story

由上图可以看到,不同的用例被分为不同的功能中。

allure.severity

allure.severity 用来标识测试用例或者测试类的级别,分为blocker,critical,normal,minor,trivial5个级别。

severity的默认级别是normal,所以上面的用例5可以不添加装饰器了。

allure.dynamic

在之前,用例的执行顺序是从上到下依次执行:

正如上例的执行顺序是 3 1 2 。

现在,来看看我们如何手动控制多个用例的执行顺序,这里也依赖一个插件。

下载

使用

手动控制用例执行顺序的方法是在给各用例添加一个装饰器:

那么, 现在的执行顺序是 2 1 3 ,按照order指定的排序执行的。

如果有人较劲传个0或者负数啥的,那么它们的排序关系应该是这样的:

失败重试意思是指定某个用例执行失败可以重新运行。

下载

使用

需要在 pytest.ini 文件中, 配置:

给 addopts 字段新增(其他原有保持不变) --reruns=3 字段,这样如果有用例执行失败,则再次执行,尝试3次。

来看示例:

结果:

我们也可以从用例报告中看出重试的结果:

上面演示了用例失败了,然后重新执行多少次都没有成功,这是一种情况。

接下来,来看另一种情况,那就是用例执行失败,重新执行次数内通过了,那么剩余的重新执行的次数将不再执行。

通过 random 模块帮助我们演示出在某次执行中出现失败的情况,而在重新执行的时候,会出现成功的情况,看结果:

可以看到,用例 02 重新执行了一次就成功了,剩余的两次执行就终止了。

一条一条用例的执行,肯定会很慢,来看如何并发的执行测试用例,当然这需要相应的插件。

下载

使用

在配置文件中添加:

就是这个 -n=auto :

并发的配置可以写在配置文件中,然后其他正常的执行用例脚本即可。另外一种就是在终端中指定,先来看示例:

结果:

pytest-sugar 改变了 pytest 的默认外观,添加了一个进度条,并立即显示失败的测试。它不需要配置,只需 下载插件即可,用 pytest 运行测试,来享受更漂亮、更有用的输出。

下载

其他照旧执行用例即可。

pytest-cov 在 pytest 中增加了覆盖率支持,来显示哪些代码行已经测试过,哪些还没有。它还将包括项目的测试覆盖率。

下载

使用

在配置文件中:

也就是配置 --cov=./scripts ,这样,它就会统计所有 scripts 目录下所有符合规则的脚本的测试覆盖率。

执行的话,就照常执行就行。

结果:

更多插件参考:https://zhuanlan.hu.com/p/50317866

有的时候,在 pytest.ini 中配置了 pytest-html 和 allure 插件之后,执行后报错:

出现了这个报错,检查你配置的解释器中是否存在 pytest-html 和 allure-pytest 这两个模块。如果是使用的pycharm ide,那么你除了检查settings中的解释器配置之外,还需要保证运行脚本的编辑器配置是否跟settings中配置一致。

Ⅱ 软件测试面试题:WEB+网络|接口测试|性能测试|自动化测试


1. http代码表,常考题目

404:找不到资源

500:服务器内部错误,无法完成请求。

501:服务器不支持请求的功能,无法完成请求。

502:充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。

301:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI,今后任何新的请求都应使用新的URI代替。

302:临时移动。与301类似。但资源只是临时被移动,客户端应继续使用原有URI。

200:成功。

2. TCP/IP四层网络模型

链路层、网络层、传输层、应用层。

3. TCP/UDP区别?

TCP: 可靠传输协议,需要三次握手连接,有确认重传机制,特点是可靠、准确、有拥塞控制,缺点就是比较慢,传输量比较小,适用于升级、下载;一句话:TCP是可靠的传输。

UDP: 不可靠传输协议,面向非连接的协议,优点是传输量大、速度快,缺点是已丢失、没有拥塞控制,适用于直播、视频等。一句话:UDP是不可靠的传输。

4. html css js运行的先后顺序是什么?

界面加载的时候先加载html在加载css最后加载js

5. session和cookie的区别是什么

1. session存放在服务器端用来校验客户端的身份

2. cookie存放在客户端,每次从客户端往服务器发请求时,将cookie带到服务器端,用来校验客户端的身份



1. 怎么用JMeter测试接口?

如果使用JMeter进行接口测试:

1) 测试前了解需求,根据接口规格说明书梳理业务;

2) 接下来设计用例,分析接口的入参和出参,分清楚有哪些有效输入和无效输入,设计用例(原则:用最少的用例覆盖所有有效输入,针对每一个无效的输入设计一个测试用例,如果有错误码没有覆盖到,还要对每个未覆盖的错误码分别设计一个用例);

3) 准备测试数据,比如:测试所需的账号、密码、key 等信息;

4) 打开JMeter,创建一个线程组,根据接口类型,填写好对应的接口地址和请求方式等;

5) 参数化配置,添加配置元件CSV Data Set Config,定义变量,并准备CSV格式的数据,变量的引用用${变量名}的格式;

6) 添加断言来判断测试结果的正确性,用得最多的是响应断言;

7) 添加监听器,比如查看结果树,对测试结果进行监听;

8) 运行测试用例;

9) 查看监听器结果,来判断用例的执行是成功还是失败,针对失败的用例,分析其失败原因;

10) 针对测试中发现的问题,给开发提单,直到问题最终解决。

11) 最后输出测试报告。

2. 怎么用Postman测试接口?

如果使用Postman测试接口:

其中1,2,3点相同,工具使用方面则比JMeter跟简单,工具的主要的步骤是添加对应的请求、填写主机URL及入参、添加测试套、运行测试套、分析结果出报告。

3. 在JMeter上如何把上一个请求的结果作为下一个请求的参数?

使用正则表达式提取器提取上一个请求的响应中的信息,保存一个引用名称比如abc,在下一个请求的参数中,用${abc}的格式来引用提取的结果。

常用的正则表达式格式:(.+?),其中.表示匹配任意字符串,+表示只匹配一次,?表示匹配到就停下来。



一般是我们功能测试完成最后两三天时间测试性能。

1、先是分析需求计算出并发数,TPS,响应时间和 CPU,内存,硬盘和网络IO这些指标。

2、制定测试方案,主要包括环境,计划和具体测试那些场景(如可靠性,并发,负载,压力测试等)

3、根据场景用Badboy录制脚本,导出为JMeter工具支持的脚本。

4、用JMeter工具打开脚本,进行脚本调试,加一些断言,监听器,参数化等。

5、接下来执行性能测试,然后主要收集监听器和收集服务器CPU,内存,硬盘和网络IO等分析是否满足需求,如果满足就输出性能测试报告。

6、如果指标不能满足,反馈给开发进行调优。调优后继续测试,一直到满足需求后最终输出测试报告。



1. Python怎么定义一个函数?

你可以定义一个由自己想要功能的函数,以下是简单的规则:

1) 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。

2) 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

3) 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

4) 函数内容以冒号起始,并且缩进

5) return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None


2 Python切片

3. Python上用过什么库/模块?

webdriver:定位和操作元素

time:设置等待时间

ActionChains:动作链,完成鼠标的相关操作

Keys:键盘的相关操作

WebDriverWait:设置显式等待

Expect_Conditions:针对单个元素,设置显式等待的场景

PIL:截图

Select:下拉选择框的操作

unittest python:自带的单元测试框架

HTMLTestRunner:运行脚本,生成报告

ddt:实现数据驱动测试,行为和数据分离

4. 你做过自动化测试吗?

我在上一份工作中,公司去年下半年也开始规划做Web 自动化,采用Python作为开发语言,通过Selenium WebDriver定位和操作页面元素,自动化框架用的是unittest。我主要负责写测试脚本。

假设一个测试团队有5个人:1资深(测试经理)+2~3个中级(自动化+手动)+1 个初级(手动)

5. 使用什么工具进行的自动化测试

使用的工具是Selenium(Web自动化工具)

6. 用的什么编程语言

用的Python

7. Selenium 用的是哪个版本的的?Python用的是哪个版本的?

用的是selenium 3.11.0和Python2.7.10

8. Selenium的工作原理?

1)对html元素定位

2)模拟对第一步定位到的元素进行点击、输入、选择等操作一句话:定位元素,操作元素。

9. 元素定位方法有哪些?

要点:8种定位方法

1) 根据元素的属性值定位,比如 id、name、class、标签名、链接文字和部分链接文字;

2) 根据CSS选择器定位;

3) 根据 XPath 定位;

10. 子页面里的元素怎么定位?

先切换到框架里,然后再定位,用switch_to_frame函数根据子页面id或name,切换到子页面;定位完了如果要再定位主页面的元素,要用switch_to_default_content 函数先返回主页面。

11. 怎么定位alert弹窗?或者这样问:怎么处理JS原生窗口?

要点:主要涉及点击弹窗确认按钮、强行关闭弹窗、获取弹窗中的文字等操作。

1) 点击弹窗的确定按钮,用如下函数:

driver.switch_to_alert().accept()

2) 强行关闭,点击右上角的叉叉,用如下函数:

driver.switch_to_alert().dismiss()

3) 获取弹窗里的文字,用如下函数:

driver.switch_to_alert().text

12. 怎么运行自动化用例并生成测试报告?

以unittest为例,我通常的做法是把用例加载到测试套中,做成一个脚本,在命令窗口下运行脚本,报告的生成用第三方模块HTML TestRunner来生成。

13. 怎么定位/操作图片中的验证码?

用tesseract OCR引擎处理图片中的验证码,步骤:

(1)对整个屏幕截屏,保存成png格式的图片;

(2)在截取的图片中定位验证码图片的位置坐标;

(3)根据坐标对验证码截图;

(4)在图片中提取验证码,输入到输入框。

Ⅲ Python操作MySQL的驱动有哪些

使用Python操作MySQL数据库的方式(驱动)有很多种,比如:PyMySQL、MySQLdb、mysqlclient、SQLAlchemy等等

MySQLdb
MySQLdb是 Python 连接 MySQL 最流行的一个驱动,很多框架都也是基于此库进行开发,遗憾的是它只支持 Python2.x,它是基于C开发的库,和Windows 平台的兼容性不友好,现在基本不推荐使用,取代的是它的衍生版本。

mysqlclient
由于 MySQLdb 年久失修,后来出现了它的 Fork 版本 mysqlclient,完全兼容 MySQLdb,同时支持 Python3.x,是 Django ORM的依赖工具,如果你想使用原生 SQL 来操作数据库,那么推荐此驱动。

PyMySQL
PyMySQL是纯 Python 实现的驱动,速度上比不上 MySQLdb,最大的特点可能就是它的安装方式没那么繁琐,同时也兼容 MySQLdb。

SQLAlchemy
SQLAlchemy是一种既支持原生 SQL,又支持 ORM 的工具,它非常接近 Java 中的 Hibernate 框架。
作为一个测试人员,数据库的操作也必须是要掌握的,如果想系统的学习接口测试相关的技术,可以了解一下黑马程序员的软件测试课程,里面讲的非常详细。

Ⅳ python自动化测试需要学什么

掌握自动化测试技术并能灵活应对不同的测试需求,Python自动化测试学习内容:

1-1 自动化测试基础

自动化测试概述

工具介绍及安装

常用命令

1-2 自动化测试环境搭建

Appium介绍及安装

Appium Capability配置介绍

Appium界面介绍

Appium简单使用

1-3 Appium 基础运用

1-4 yaml配置文件使用

1-5 单元测试框架unittest使用

Ⅳ python3实现自动化测试 [基于python语言实现自动化测试的研究]

[摘 要]自动化测试近年来的技术已经越来越成熟,在某些方面有着不可替代的作用,例如在性能测试,压力测试中,自动化测试可以模拟成千上万个用户对目标程序进行测试。本文通过对大型实际项目的分析研究,分析针对某一产品的自动化测试框架。然后讨论怎样用python实现自动化测试。
[关键词]测试技术手工测试自动化测试python脚本
[中图分类号]TP3[文献标识码]A[文章编号]1007-9416(2010)03-0088-01

地添加测试用例,为测试用例提供公用函数,执行测试用例,发送测试结果等功能。
1 自动化测试的重要概念
检查点(CheckPoint):将特定属性的当前数据与期望数据进行比较的地方,用于判定被测试程序的功能是否正确。
成本收益比:并不是所有的测试都适合自动化测试,衡量一个用例是否适合自动化测试一个很重要的参考是国际上流行的自动化测试成本收益比,即是p=k*n/c1+c2。各个参数的意义下:
K=手工执行自动化测试案例所花费的时间成本。
N=自动化测试案例执行的次数
C1=花费在自动化测试前期的(时间成本+人力成本+金钱成本)
C2=花费在自动化测试后期的(时间成本+人力成本+金钱成本)
二八定律:1897年意大利经济学家帕列托发现的二八定律在软件行业同样适用,而可以给我们很多启发,指导我们的软件开发和测试。80%的用户经常使用的是20%的软件功能。在软件测试中,80%的bug是集中在20%的软件模块中,对于自动化测试来说,找出这20%的测试用例是至关重要的。
2 自动化测试的执行步骤
每次脚本都是从一个统一的文件开始执行的,就是如上的Start.py。这样做的好处是可以把每个脚本都需要处理的工作放到一个文件中去执行,例如收集一些配置信息,读取命令行参数。以这样统一的处理风格为脚本的可读性提供了保证,也为简化了测试脚本的编写,不用每次都要处理一些基本的事务。
启动文件Start.py首先会读取命行参数,如pthon Start.py -s FileMenu.suite -t FileNew
通过python的内置函数sys.argv就可以读取命令行参数吵肢,非常方便。读取到命令行参数后,在Start.py内部可以判断命令行的格式是否符合我们的格式,如测试人员不小心把-s 写成了-z 这样就要退出测试执行。
如果输入的格式是正确的,Start.py 负责在特定的目录下寻找特定的Suite文件和Testcase。Suite文件和Testcase的格式会在下边的具体实例中作介绍。
找到特定的Testcase后就可以执行测试用例,根据检查点的通过或失败发送测试报告,该报告会以网页的形式显示,方便测试人员和开发人员的查找调试。
3 用python实现GUI测试
图形用户界面(GUI) 就是使用图象,输入的文字,带图标的计算机界面,取而代之了许多键盘的功能。GUI可以让用户通过图标和鼠标与计算机进行交互,而不是单调地在命令行中输入文本进行操作。设计良好的图形用户界面可以使用户从命令中解放出来。
GUI测试主要包括两个方面:一是纯GUI测试,主要关注应用程序上GUI组件是否符合规范或是用户的使用习惯,二是功能测试,主要是检验和验证系统是否实现了系统的业务需求,旨在验证系统的业务实现能力。但事实上两者不是完全独立的,一方面GUI的测试必定要触发功能,另一方面,功能测试也一定要通过GUI将搜碰洞事件传递给后台服务。
3.1 编写测试用例
ID 466540 :: Test CaseGeneral UI File Menu
Version 2
世枯PriorityP1
Summary:Verify File New window
Steps
SelectFile -> New
Expected Results
1. The VM creation window should open.
Keywords: i18n
Requirements : None
Created on 09/22/2008 20:58:23by wangw
Last modified on04/17/2009 00:20:53by marian
3.2 测试用例分析
以上是一个完整测试用例, 该测试用例包括:
测试ID 466540 , 有了测试ID就可以在测试人员提交bug后,QA或开发人员通过ID找到这个测试用例。还有一个更大的用处就是,在自动个脚本生成测试报告后,可以根据测试ID把该测试用例显示在测试报告中,以供测试人员和开发人员调试。
测试名称,根据测试名称应该可以很快了解测试用例的内容,所以好的测试名称也是非常重要的。
测试用例的版本(Version)。
测试优先级(Priority),测试优先级也是一个很重要的参数,因为大型项目都要有很多测试用例要执行。只有明确测试优先级才能确保重要的测试用例得以及时进行,保证软件质量。
测试用例概述(summary),帮助测试执行人员了解该测试用例的用测的功能。
测试步骤,描述测试人员或是自动化脚本每一步是怎样操作的,例如本例告诉测试人员选择菜单Fie,然后选择菜单项New。
预期结果(Expected Results),说明经过以上测试步骤,期望程序运行出现的结果。
4 结语
本文在明确软件测试理论的基础上,对自动化测试做了重点阐述,通过实际项目的自动化测试分析,有些测试用例特别适合用自动化测试。例如GUI测试中,用些是要验证界面元素是否显示正常。如果是脚本就可以准确无误地很快验证完毕,而用人工验证不仅容易出错而且费时间。由于时间和硬件条件有限,本论文规避了许多问题,所以仍有许多工作需要完成。例如:做好脚本的复用,使测试脚本不断积累。及研究怎样在测试工具和自己搭建框架中寻找平衡等。

[参考文献]
[1] 张克东.《软件工程与软件测试自动化教程》.北京:电子工业出版社,2002.
[2] 朱菊,王志坚,杨雪.《基于数据驱动的软件自动化测试框架》[J]计算机技术测试与发展,2006.
[3] 马瑞芳,王会燃.《计算机软件测试方法的研究》.小型微型计算机系统,2003.
[4] 朱鸿,金凌紫.《软件质量保障和测试》[M].北京:电子科学出版社,1997.
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

Ⅵ 怎么用python做自动化测试

这里以web自动化测试为例,简单介绍一下如何使用python进行web自动化测试,主要用到selenium这个框架,实验环境win10+python3.6,主要内容如下:

1.首先,安装selenium框架,这个直接在cmd窗口输入命令“pipinstallselenium”就行,如下,安装非常快:

2.安装完成后,还需要安装浏览器驱动程序,不然直接运行程序会报错,以谷歌浏览器chrome为例,需要下载chromedriver驱动程序,如下,这里chromedriver的版本必须要与自己平台浏览器的版本匹配:

下载完成后,是一个zip压缩包,里面就一个chromedriver.exe文件,这里需要将这个文件复制到python安装目录下,如下:

3.最后,我们就可以进行selenium框架测试了,测试代码如下,非常简单,创建一个webdriver,如果能正常打开对应网页,则说明selenium安装成功:

之后就可以直接定位相关元携余素,进行web自动化测试了,主要方法如下(共有8种),辩洞滚分别是id、name、classname、tagname、linktext、partiallinktext、xpath和cssselector,这里可以自行测试,相关资料非常丰富:

至此,我们就完成了pythonweb自动化测试框架selenium的安装和简单使用。总的来说,整个过程非常简单,只要你有一定的python基础,熟悉一下上面的安装过程,很快就能搭建好本地selenium自动化测试框架,网上也颤芹有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

阅读全文

与python数据驱动测试相关的资料

热点内容
pdf文件如何加密为只读 浏览:132
如何验证web服务器是否正常工作 浏览:132
全球最大的加密货币网站 浏览:284
解压文件为什么有问号 浏览:389
php考试系统模板 浏览:431
pdf导出图片模糊 浏览:610
我的世界编玩边学服务器地址 浏览:456
基于单片机的火灾报警系统 浏览:166
上海追星用什么app 浏览:425
海马m5压缩机维修 浏览:98
抖音怎么给自己喜欢的加密 浏览:247
中国五大加密货币 浏览:263
程序员手疼7年查6处骨肿瘤 浏览:39
python列表对象的创建与删除 浏览:467
python删除excel表格中的一行 浏览:521
android数据库的增删改查 浏览:632
云服务器2g4g有什么区别 浏览:324
显示文件夹所有文件的文件名函数 浏览:213
可以在网站写代码的编译器 浏览:76
王者换服务器怎么不用重玩 浏览:328