本发明专利技术涉及计算机软件测试领域,具体来说是基于pytest和allure的自动化测试框架。所述自动化测试框架同时使用了mkdocs、pytest、allure、gitlab、jenkins和docker组件,所述自动化测试框架包括通过excel文件存储测试用例:将一次测试流程中的每一步,变成excel中的每一列,然后每一行表示多次相同的测试流程;mkdocs实现自动化框架使用文档和框架的集成:mkdocs自动生成代码接口文档,同时编写框架的使用说明文档后,将文档和代码同步托管到gitlab上。本发明专利技术同现有技术相比,其优点在于:通过Excel存储测试用例,用例和框架分离,框架可以快速适配多个不同的项目,不需要了解任何代码即可编写测试用例,降低了使用门槛,用例的测试流程清晰明了,方便阅读和理解测试流程。程。程。
【技术实现步骤摘要】
基于pytest和allure的自动化测试框架
[0001]本专利技术涉及计算机软件测试领域,具体来说是一种基于pytest和allure的自动化测试框架。
技术介绍
[0002]测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。测试用例较多时,通过人工测试的方法,耗时长,且在测试过程中,容易忽略软件错误。用例和框架代码合并是常见的测试用例,这种方式的缺点是用例阅读和编写的入门要求高,无法快速上手,且测试用例和框架无法分离,导致框架不能快速平移到多个项目。存储为toml、yml、txt等格式也是常见的测试用例,这些方式的缺点是不同格式的用例,有着自身的特定编写语法和格式要求,也需要一定的门槛。
[0003]同时旧的测试框架还存在以下问题:编写自动化用例时,需要了解框架对应的语法后,才能编写;在多用户服务器运行测试框架时,容易因为环境变量的更改、依赖包的新增或删除导致框架执行失败,且调试排查难;测试框架代码冗余复杂;测试报告不够清晰明了,且测试记录保存在运行环境本地,比较零散较易遗漏;测试框架不满足CI/CD的概念,不利于整个项目的开发、测试和交付;测试框架执行时间较长,不方便调试。
技术实现思路
[0004]本专利技术要解决的技术问题是克服现有技术的不足,提供一种测试用例易编写,测试环境灵活配置,测试用例执行简单,支持多用户,测试报告高易读性的自动化测试框架,并且该自动化测试框架可以精准、快速地完成自动化测试。
[0005]为了实现上述目的,设计基于pytest和allure的自动化测试框架,所述自动化测试框架同时使用了mkdocs、pytest、allure、gitlab、jenkins和docker组件,所述自动化测试框架包括通过excel文件存储测试用例:将一次测试流程中的每一步,变成excel中的每一列,然后每一行表示多次相同的测试流程;mkdocs实现自动化框架使用文档和框架的集成:mkdocs自动生成代码接口文档,同时编写框架的使用说明文档后,将文档和代码同步托管到gitlab上;pytest完成测试用例的检索、解析、执行, 通过allure完成测试报告的输出: pytest本身是不携带报告,通过allure和pytest,输出测试报告,在pytest框架中,将任意提示信息和测试结果添加到allure的测试报告中;通过gitlab和jenkins实现测试框架代码的维护和CI/CD;通过docker完成整体框架,docker用于将pytest和jenkins的运行环境打包成容器,并生成镜像发布。
[0006]本专利技术还具有如下优选的技术方案:1.所述的通过excel文件存储测试用例中每行的最后两列,一列名为title,对该行所代表的测试场景做解释说明,并添加到报告中;另一列作为该测试场景是否执行的标志位;然后编写为excel用例解析模块,对于不同的测试流程,则对应不同的excel用例解析
模块。
[0007]2.所述allure和pytest组件加上jenkins后,在报告中,用于展示历史测试记录信息。
[0008]3.gitlab用于托管框架代码,将其和jenkins集成一起实现CI/CD,包括自动生成框架新的文档、自动触发自动化测试和多用户测试环境的管理。
[0009]4.docker组件中,下载ubuntu镜像,安装pytest和jenkins环境,生成新的镜像。
[0010]5.所述pytest组件中包括比对模块,所述比对模块支持以字段配置表的形式,自定义每个字段是否参与预期比对,是否在报告中显示。
[0011]6.所述allure组件中通过编写jinja2的html模板文件,对比对结果进行渲染,并生成html格式的文件,附加到allure报告中。
[0012]7.所述mkdocs用于实现文档和自动化框架的集成,文档在线访问,且文档随代码自动更新。
[0013]本专利技术同现有技术相比,其优点在于:1.通过Excel存储测试用例,用例和框架分离,框架可以快速适配多个不同的项目,不需要了解任何代码即可编写测试用例,降低了使用门槛,用例的测试流程清晰明了,方便阅读和理解测试流程;2. gitlab用于托管框架代码,将其和jenkins集成一起实现CI/CD ,CI/CD程度较高,有扩展性,如果被测软件支持CI,可以进一步完善;3.由于使用jenkins和docker管理框架,当有新的测试人员需要执行测试时,无需担心框架运行环境导致的测试执行失败等问题,可以专注于测试本身;4.测试报告清晰明了,且测试记录可以永久保存,同时记录了每次测试的测试环境信息,支持对比以往的结果。
附图说明
[0014]图1是本专利技术的整体结构图;图2是本专利技术的测试框架模块架构图;图3是本专利技术的pytest测试用例执行流程图。
具体实施方式
[0015]下面结合附图对本专利技术作进一步说明,本专利技术的结构和原理对本专业的人来说是非常清楚的。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。
[0016]本专利技术的整体结构如图1所示:1.docker部分:docker的主要作用是将pytest和jenkins的运行环境打包成容器,并生成镜像发布,证测试环境的纯净和稳定,不会因为服务器的多用户使用特性导致测试环境被污染,不用担心环境问题导致用例执行失败;镜像发布后,也方便其他测试人员或项目进行移植,成本较低。通过docker完成整体框架的易管理、易移动、易维护,其具体步骤如下:step1:下载ubuntu镜像,并创建容器;
step2:在容器中,安装python3、pytest、jenkins以及相关python依赖包;step3:打包该容器并制作镜像发布;step4:在需要运行自动化框架的服务器上,运行step3中制作的镜像,形成容器;step5:在该容器中,启动jenkins服务。
[0017]2.jenkins部分:step1:安装allure
‑
jenkins、Config File Provider、Git等运行框架需要的插件;step2:新建测试项目,并配置源码管理、触发器、构建环境、构建和构建后操作等部分的配置;step3:建立测试人员个人的测试环境pytest.ini配置文件。
[0018]3.mkdocs部分:mkdocs实现了自动化框架使用文档和框架的集成。一般的框架是不会携带框架使用说明文档和代码接口文档的,mkdocs可以自动生成代码接口文档,同时编写框架的使用说明文档后,将文档和代码同步托管到gitlab上,可以实现自动生成在线的文档,方便任意设备上的实时访问;同时,每次代码更新,都会自动生成新的文档,其具体步骤如下:step1:通过mkdocs new<project_dir>创建项目自动化框架代码目录;step2:在docs目录中,编写md格式的框架使用说明文件、框本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.基于pytest和allure的自动化测试框架,其特征在于所述自动化测试框架同时使用了mkdocs、pytest、allure、gitlab、jenkins和docker组件,所述自动化测试框架包括通过excel文件存储测试用例:将一次测试流程中的每一步,变成excel中的每一列,然后每一行表示多次相同的测试流程;mkdocs实现自动化框架使用文档和框架的集成: mkdocs自动生成代码接口文档,同时编写框架的使用说明文档后,将文档和代码同步托管到gitlab上;pytest完成测试用例的检索、解析、执行, 通过allure完成测试报告的输出: pytest本身是不携带报告,通过allure和pytest,输出测试报告,在pytest框架中,将任意提示信息和测试结果添加到allure的测试报告中;通过gitlab和jenkins实现测试框架代码的维护和CI/CD;通过docker完成整体框架,docker用于将pytest和jenkins的运行环境打包成容器,并生成镜像发布。2.如权利要求1所述的基于pytest和allure的自动化测试框架,其特征在于所述的通过excel文件存储测试用例中每行的最后两列,一列名为title,对该行所代表的测试场景做解释说明,并添加到报告中;另一列作为该测试场景是否执行的标志位;然后编写为excel用例解析模块,对于不同的测试流程,则对...
【专利技术属性】
技术研发人员:邹旋,
申请(专利权)人:上海恒为智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。