测试用例

【转】探讨一下最理想的自动化测试模型,自动化测试如何做到分层 ?

元气小坏坏 提交于 2019-12-04 18:58:09
自动化测试介绍 自动化测试(Automated Testing),是指把以人为驱动的测试行为转化为机器执行的过程。实际上自动化测试往往通过一些测试工具或框架,编写自动化测试用例,来模拟手工测试过程。比如说,在项目迭代过程中,持续的回归测试是一项非常枯燥且重复的任务,并且测试人员在每天重复劳动的工作之下,也丝毫得不到成长。 此时开展自动化测试就能够帮助测试人员从重复、枯燥的手工测试中解放出来,提高测试效率,缩短回归测试时间。一般来说,自动化测试通常都会跟持续集成系统(比如Jenkins)配合使用。 但在自动化实践过程中,往往会发现理想和现实之间的差距很大。自动化测试的劣势,主要体现在以下几方面: 1 相对手工测试,自动化测试对测试人员的要求相对较高; 2 测试用例需要根据版本迭代进行更新,有一定维护成本; 3 不能指望自动化测试去发现更多新的BUG,自动化测试能发现的缺陷远远比手工测试少; 4 自动化测试的产出价值往往在于长期的回归测试,短期内发挥的作用可能不明显; 希望借助自动化流程解决的问题 1 测试时间紧张,手工测试可能覆盖不全,容易错过某些边界情况; 2 模块间强耦合时,单纯从页面进行测试时,比较难深入的发现问题; 3 回归测试时,需要投入较大的人力/工时; 4 实现手工测试无法达成的测试任务; 5 通过编写测试用例,加深对业务/数据的认知,有助于下阶段迭代中发现隐藏的问题;

pytest -- 测试的参数化

随声附和 提交于 2019-12-04 18:21:38
目录 1. @pytest.mark.parametrize 标记 1.1. empty_parameter_set_mark 选项 1.2. 多个标记组合 1.3. 标记测试模块 2. pytest_generate_tests 钩子方法 往期索引: https://www.cnblogs.com/luizyao/p/11771740.html 在实际工作中,测试用例可能需要支持多种场景,我们可以把和场景强相关的部分抽象成参数,通过对参数的赋值来驱动用例的执行; 参数化的行为表现在不同的层级上: fixture 的参数化:参考 4、fixtures:明确的、模块化的和可扩展的 -- fixture 的参数化 ; 测试用例的参数化:使用 @pytest.mark.parametrize 可以在测试用例、测试类甚至测试模块中标记多个参数或 fixture 的组合; 另外,我们也可以通过 pytest_generate_tests 这个钩子方法自定义参数化的方案; 1. @pytest.mark.parametrize 标记 @pytest.mark.parametrize 的根本作用是在 收集 测试用例的过程中,通过对 指定参数 的赋值来新增被标记对象的 调用(执行) ; 首先,我们来看一下它在源码中的定义: # _pytest/python.py def parametrize

lesson9_单元测试

扶醉桌前 提交于 2019-12-04 14:02:39
test case test suite test runner test fixture 测试用例 测试套件 测试执行 测试前的准备和测试后的清理工作(为编写用例里的setup , setdown) TestLoader 将 TestCase 放在 TestSuite里 , 然后执行 TextTestRunner , 存储结果 TestResult 一 . unittest的初级使用: 1. 导入 unittest 模块,被测文件或其中的类 2. 创建一个测试类,并继承 unittest.TestCase 3. 重写 setUp 和 tearDown 方法(如果有初始化条件和结束条件) 4. 定义测试函数,函数以 test_ 开头. 测试用例 5. 在函数体中使用断言来判断测试结果是否符合预期结果 6. 调用 unittest.main() 方法运行测试用例 来源: https://www.cnblogs.com/zhangniannian/p/11869472.html

顶尖高手帮你整理的性能测试方法大全(重要)

北战南征 提交于 2019-12-04 12:12:14
顶尖高手帮你整理的性能测试方法大全 在这半年以来,我陆续参加或者独立承担的项目组版本的部分性能测试,慢慢的有了一些认识,暂时做一个积累,和大家做一个交流。 性能测试的需求背景一般来自于以下三种情况: 第一种是现网出现性能问题,项目组专门进行了性能改造。比如修改的某个接口,由原来的同步调用修改成了异步,又或者是更换了新的api,由tcp协议修改为udp协议,为了保证新替换的api的可靠性,都需要进行性能测试 第二种是一个新做的系统,运营人员需要全面的把脉,了解该系统的处理能力。 第三种是随着请求量的快速增长,而该系统却从未做过性能测试,项目组担心系统在可预见的短期会扛不住,所以要求测试人员对该进行全面的性能测试,给出一份参考数据 根据背景的不同我们往往有不同的准备方式,但是大致可以从以下几个方面入手准备。 1、全面了解该系统概况 (1)系统所期望的性能指标: 对于第一二两种情况,都会有很明确的现网性能指标,比如以前测试的acs,是一个新作的系统,需求说明书中就明确标注需要达到1wtps.而对于第三种情况,往往我们需要尽量的模拟现网,得出数据供运营做参考。 例如最近测试的查询限制引擎,测试这边给出了单台svr的处理能力以及是否支持平行扩展等运维最关心的数据即可。 (2)组网以及网间各个系统之间的通信形式: 有时我们性能改造只是组网中一个小小的系统

11、pytest -- 测试的参数化

◇◆丶佛笑我妖孽 提交于 2019-12-04 08:26:41
目录 1. @pytest.mark.parametrize 标记 1.1. empty_parameter_set_mark 选项 1.2. 多个标记组合 1.3. 标记测试模块 2. pytest_generate_tests 钩子方法 往期索引: https://www.cnblogs.com/luizyao/p/11771740.html 在实际工作中,测试用例可能需要支持多种场景,我们可以把和场景强相关的部分抽象成参数,通过对参数的赋值来驱动用例的执行; 参数化的行为表现在不同的层级上: fixture 的参数化:参考 4、fixtures:明确的、模块化的和可扩展的 -- fixture 的参数化 ; 测试用例的参数化:使用 @pytest.mark.parametrize 可以在测试用例、测试类甚至测试模块中标记多个参数或 fixture 的组合; 另外,我们也可以通过 pytest_generate_tests 这个钩子方法自定义参数化的方案; 1. @pytest.mark.parametrize 标记 @pytest.mark.parametrize 的根本作用是在 收集 测试用例的过程中,通过对 指定参数 的赋值来新增被标记对象的 调用(执行) ; 首先,我们来看一下它在源码中的定义: # _pytest/python.py def parametrize

测试基础

自古美人都是妖i 提交于 2019-12-04 07:11:35
目录 为什么需要软件测试?回到顶部 为什么选择软件测试行业?回到顶部 为什么不让开发自己做测试?回到顶部 什么是测试?回到顶部 软件测试的作用?回到顶部 软件测试的诞生回到顶部 软件测试出现原因回到顶部 软件测试的发展回到顶部 软件测试的目标回到顶部 缺少软件测试发生的事故回到顶部 软件测试常见的误区回到顶部 软件测试的主要工作回到顶部 测试原则回到顶部 测试对象回到顶部 软件架构回到顶部 常见项目组织架构回到顶部 软件测试用例回到顶部 什么是测试用例回到顶部 为什么需要测试用例回到顶部 测试用例的意义回到顶部 测试用例的生命周期回到顶部 测试环境设计回到顶部 测试力度回到顶部 软件测试计划书回到顶部 测试计划的意义回到顶部 测试目标回到顶部 资源配置回到顶部 风险控制回到顶部 如何制定测试计划回到顶部 5W1H方法回到顶部 工作经验之谈回到顶部 图解软件测试计划回到顶部 软件计划报告回到顶部 软件兼容性回到顶部 what,什么是软件兼容性测试回到顶部 why,为什么要进行软件兼容性测试回到顶部 when,什么时候开始软件兼容性测试回到顶部 where,软件兼容性测试都要测什么回到顶部 who,谁来执行软件兼容性测试回到顶部 how,怎样执行兼容性测试回到顶部 版本控制回到顶部 引入版本控制的原因回到顶部 版本控制的定义回到顶部 版本控制方法回到顶部 版本控制评价标准回到顶部

汽车电子测试项目管理系统-TPA

拥有回忆 提交于 2019-12-04 05:38:51
概述 INTEWORK-TPA(Test Project Administrator, 以下简称TPA) 是一款集成的测试项目管理工具,它可以管理测试过程中的所有数据,包括需求、用例、样件、计划、报告和缺陷等;传统的管理方式一般基于多个软件,多是基于对单一过程的管理,缺少严谨的管理思想和过程的跟踪,作为测试项目管理的一体化解决方案,TPA 更关注于测试项目流程的管理,在一套系统中对各个过程做到有效地跟踪和覆盖。 产品介绍 • 测试需求管理 TPA 的项目管理是以需求为核心,支持查看基于需求的统计信息,例如需求覆盖情况、对应用例的执行情况及对应用例测试产生的缺陷等统计信息。 ♦ 支持第三方工具测试需求的导入 ♦ 支持测试需求和测试用例、计划、缺陷、报告关联 ♦ 强大的数据统计功能 • 测试计划管理 每个测试计划可以指定开始、结束时间、负责人和所需执行的测试用例等信息。同时提供完善的统计功能,项目管理者可以直观查看项目计划执行的状态,帮助用户减少繁琐的统计工作,把更多的精力投入到项目管理中。 ♦ 支持测试用例开发计划和测试用例执行计划的建立 ♦ 支持对不同类型测试计划完成情况的追踪 ♦ 支持将自动测试计划导入 TAE 执行 ♦ 支持手动测试计划导出 • 测试用例管理 通过新建不同层级的包或直接继承需求管理模块中的层级结构来分层管理测试用例,这个模块中的树形结构

itest(爱测试) 4.1.5 发布,开源BUG 跟踪管理 & 敏捷测试管理软件

為{幸葍}努か 提交于 2019-12-04 04:54:11
v4.1.5下载地址 : itest下载 itest 简介 : 查看简介 itest 开源敏捷测试管理,testOps 践行者。可按测试包分配测试用例执行,也可建测试迭代(含任务,测试包,BUG)来组织测试工作,也有测试环境管理,还有很常用的测试度量;对于发版频繁,需求常变,itest还可导出用例,线下修改、执行,新增后再导入(同步)到线上;且可根据测试策略来设置测试流程,并可实时调整;在测试看板中,能查看迭代报告,测试包执行情况,测试任务进展,也可以在看板上直接执行用包用例。 在线体验 https://itest.work/demo/ V4.1.5 根据用户反馈,共增加了27个更新:其中有15个功能增强和优化和12个BUG修复。用例增加基线,且在测试包中分配用例时,可以按基线过滤;测试包中增加版本,执行其下用例时,缺省就是测试包的牒版本;当只参加一个项目,点测试菜单时,不再弹出选项目列表,直接进入所参加的项目;另外还修心了任务管理,和迭代管理的几个BUG,还有一些优化和增加。 V4.1.5详情如下所述: 功能增强 1:切换测试项目的窗口有时候,显示的grid 没撑开 2: 点项目,或是任务,或是迭代时,有chrome ,edge 浏览时,再提升1秒, 整个itest是单页系统,切换页面时,有些有左侧菜单,有些没有 前面说的这三个就没有左则菜单,切换后要撑开页面,以显不饱满

Pytest实战API测试框架

可紊 提交于 2019-12-04 03:33:29
https://www.jianshu.com/p/40a0b396465c?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-timeline&from=timeline&isappinstalled=0 功能规划 数据库断言 pymysql -> 封装 环境清理 数据库操作 -> Fixtures 并发执行 pytest-xdist 多进程并行 复合断言 pytest-check 用例重跑 pytest-rerunfailures 环境切换 pytest-base-url 数据分离 pyyaml 配置分离 pytest.ini 报告生成 pytest-html, allure-pytest 用例等级 pytest-level 限制用例超时时间 pytest-timeout 发送报告邮件 通过自定Fixture及Hooks实现 安装相应的包 pip安装时可以通过 -i https://pypi.doubanio.com/simple/ ,指定使用豆瓣的源, 下载稍微快一点 pip install requests pymysql pyyaml pytest pyetst-xdist pytest-check pytest-rerunfailures pytest-base

Pytest实战Web测试框架

本小妞迷上赌 提交于 2019-12-04 03:32:44
https://www.jianshu.com/p/9a03984612c1?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-timeline&from=timeline&isappinstalled=0 项目结构 用例层(测试用例) | Fixtures层(业务流程) | PageObject层 | Utils实用方法层 使用pytest-selenium 基础使用 # test_baidu.py def test_baidu(selenium): selenium.get('https://www.baidu.com') selenium.find_element_by_id('kw').send_keys('简书 韩志超') selenium.find_element_by_id('su').click() 运行 $ pytest test_baidu.py --driver=chrome 或配置到pytest.ini中 [pytest] addopts = --driver=chrome 使用chrome options # conftest.py import pytest @pytest.fixture def chrome_options(chrome