一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于pytest框架再创新实现自动化测试的方法与流程

2022-12-09 23:17:54 来源:中国专利 TAG:

1.本发明涉及软件测试技术领域,具体而言,涉及一种基于pytest框架再创新实现自动化测试的方法。


背景技术:

2.软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程;软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程,软件一般是用某种程序设计语言来实现的,通常采用软件开发工具可以进行开发;软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分,软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。
3.测试是完善的研发体系中不可或缺的一环,随着软件行业对质量的要求越来越高,必然引起了对测试工作的重视,由于前端偏向于gui软件的特殊性,且更迭时间短,进度快,种类多,如果是高覆盖率要求的前提下,每个功能的测试案例量都很大,并且由于测试阶段中不断的代码修改、集成,使得仅靠人工很难保证版本的测试充分,这个时候就需要借助自动化来释放人力、提升效率了;然而,现有的自动化测试方法往往存在以下问题:随着产品功能的迭代,需要多次冒烟测试;日常测试中大量重复性功能测试所需的操作;市面各种浏览器和各种版本所导致的大量兼容测试;难以实现前后端交互数据的正确性验证。


技术实现要素:

4.本发明的主要目的在于提供一种基于pytest框架再创新实现自动化测试的方法,以改善相关技术中人工测试时间和维护成本较高、随着产品功能的迭代,需要多次冒烟测试、日常测试中大量重复性功能测试所需的操作、市面各种浏览器和各种版本所导致的大量兼容测试、难以实现前后端交互数据的正确性验证的问题。
5.为了实现上述目的,本发明提供了一种基于pytest框架再创新实现自动化测试的方法,具体包括以下步骤:
6.s1、拼接参数:开始进行自动化测试,首先开始所述拼接参数;
7.s2、插入测试用例:开始所述拼接参数之后,然后再插入需要执行的测试用例;
8.s3、进行检查工作:检查当前运行的环境,检查当前浏览器类型和版本号,检查本地是否有可用的driver;
9.s4、启动浏览器:首先自动下载所述driver以后,然后再启动所述浏览器;
10.s5、操作浏览器:首先登录指定地址,然后再对页面元素查找并判断,以及操作所述页面元素,最后再返回操作后结果;
11.s6、生成报告:返回所述操作后结果之后,首先对结果断言,然后再生成报告,最后再关闭所述浏览器。
12.在本发明的一种实施例中,所述步骤s1中,所述拼接参数包括传输协议、接口调用
配置信息和接口函数,所述传输协议与所述接口调用配置信息相互配合,所述接口调用配置信息与所述接口函数相互配合。
13.在本发明的一种实施例中,所述步骤s1中,所述拼接参数中设置有软件测试配置文件,所述根据软件测试配置文件向服务端请求软件测试参数是根据所述软件测试配置文件中的所述传输协议发送的,所述调用软件测试配置文件中的所述接口函数生成软件测试程序包括调用所述软件测试配置文件中的所述接口函数。
14.在本发明的一种实施例中,所述步骤s2中,预先在所述浏览器测试中设置有用例库,所述用例库中设置多个站点所在的所述浏览器页面,接收参数修改指令,修改所述浏览器测试用例库中的浏览器页面相关测试参数。
15.在本发明的一种实施例中,所述步骤s2中,所述测试用例采用独立树构建方式,完成一整套用例测试,框架采用_case _assert _element的用例结构,页面元素和元素操作方法进行隔离并统一管理,所述测试用例不仅可支持对ui上元素点击输入等操作,还支持直接查询数据库的功能,可从数据库sql查询结果,然后和前端返回的数据进行断言比对。
16.在本发明的一种实施例中,所述步骤s3中,首先检查当前运行的环境,所述当前运行的环境包括mac和win,然后再检查当前浏览器类型和版本号,所述当前浏览器同时兼容谷歌、火狐等浏览器,也支持扩展更多浏览器。
17.在本发明的一种实施例中,所述步骤s3中,在检查所述当前运行的环境和所述当前浏览器类型和版本号之后,最后再检查本地是否有可用的所述driver,有则直接启动所述浏览器,没有则自动下载所述driver,然后再启动所述浏览器,自动下载所述driver部署后,可自动下载相符的驱动并单独存放。
18.在本发明的一种实施例中,所述步骤s4中,首先判断用户是否为注册用户,在判断所述用户为注册用户之后,接收用户发送的浏览器测试用例,然后在接收到用户发送的浏览器测试用例之后,判断所述浏览器测试用例是否满足测试用例的规范要求,在判断所述浏览器测试用例满足测试用例的规范要求时,最后再调用浏览器测试用例库中的浏览器页面运行所述浏览器测试用例。
19.在本发明的一种实施例中,所述步骤s5中,在每次自动执行自动化用例完成后系统自动生成allure报告以测试套,测试类,测试用例的多层级多维度统计断言数据。
20.在本发明的一种实施例中,所述步骤s6中,所述生成报告自动生成测试报告,能在多维度查看测试结果,评估测试结果。
21.与现有技术相比,本发明的有益效果是:
22.1.通过上述设计的基于pytest框架再创新实现自动化测试的方法,使用时,开始进行自动化测试,开始拼接参数,然后再插入需要执行的测试用例,测试用例采用独立树构建方式,完成一整套用例测试,测试用例不仅可支持对ui上元素点击输入等操作,还支持直接查询数据库的功能,可从数据库sql查询结果,然后和前端返回的数据进行断言比对,在每次自动执行自动化用例完成后系统自动生成allure报告以测试套,测试类,测试用例的多层级多维度统计断言数据,由于框架采用_case _assert _element的用例结构,页面元素和元素操作方法进行隔离并统一管理,易于系统在迭代中快速的维护脚本,同时对后期用例的增减配置灵活,依赖少,从而解决了随着产品功能的迭代,需要多次冒烟测试,也解决了日常测试中大量重复性功能测试所需的操作;
23.2.通过上述设计的基于pytest框架再创新实现自动化测试的方法,使用时,检查当前运行的环境,兼容mac和win多个系统,检查当前浏览器类型和版本号,同时兼容谷歌、火狐等浏览器,也支持扩展更多浏览器,检查本地是否有可用的driver,自动下载driver以后,部署后,可自动下载相符的驱动并单独存放,简便又快捷,启动浏览器,从而解决了市面各种浏览器和各种版本所导致的大量兼容测试;
24.3.通过上述设计的基于pytest框架再创新实现自动化测试的方法,使用时,登录指定地址,然后再对页面元素查找并判断,以及操作所述页面元素,最后再返回操作后结果,由于是基于selenium pytest allure实现控制web页面各个元素的方法,针对中教云智慧教学平台web端提升回归功能测试用例覆盖率,节省软件迭代中测试人工时间成本的问题;
25.4.通过上述设计的基于pytest框架再创新实现自动化测试的方法,使用时,返回所述操作后结果之后,首先对结果断言,然后再生成报告,最后再关闭所述浏览器,实现了前后端交互数据的正确性验证,自动生成测试报告,能在多维度查看测试结果,评估测试结果,提供了一套针对web端模拟人工页面操作的自动化测试脚本,能够每个周期自动执行,代替人工枯燥的测试,节省人工成本且提高测试效率,用基于pytest框架和selenium完成一套用_case _assert _element的用例结构,这种用例元素分离式设计思想,对于当下web页面复杂而又时常更新的状况下非常适用。
附图说明
26.图1为根据本发明实施例提供的基于pytest框架再创新实现自动化测试的方法的流程示意图;
27.图2为根据本发明实施例提供的基于pytest框架再创新实现自动化测试的方法的步骤示意图。
具体实施方式
28.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
29.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
30.在本发明中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本发明及其实施例,并非用于限定所指示的装
置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
31.并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本发明中的具体含义。
32.另外,术语“多个”的含义应为两个以及两个以上。
33.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
34.实施例1
35.请参阅图1-图2,本发明提供了一种基于pytest框架再创新实现自动化测试的方法,pytest是一个非常成熟的全功能的python测试框架,是基于python语言的主流测试框架之一,使用灵活,支持参数化,集成了很多第三方插件,并支持自定义扩展;
36.具体包括以下步骤:
37.s1、拼接参数:开始进行自动化测试,首先开始拼接参数;
38.步骤s1中,拼接参数包括传输协议、接口调用配置信息和接口函数,传输协议与接口调用配置信息相互配合,接口调用配置信息与接口函数相互配合;
39.步骤s1中,拼接参数中设置有软件测试配置文件,根据软件测试配置文件向服务端请求软件测试参数是根据软件测试配置文件中的传输协议发送的,调用软件测试配置文件中的接口函数生成软件测试程序包括调用软件测试配置文件中的接口函数;
40.s2、插入测试用例:开始拼接参数之后,然后再插入需要执行的测试用例;
41.测试用例采用独立树构建方式,完成一整套用例测试,测试用例不仅可支持对ui上元素点击输入等操作,还支持直接查询数据库的功能,可从数据库sql查询结果,然后和前端返回的数据进行断言比对,在每次自动执行自动化用例完成后系统自动生成allure报告以测试套,测试类,测试用例的多层级多维度统计断言数据;
42.allure是一个灵活的轻量级多语言测试报告工具,能从dev/qa角度以web的方式收集并展示测试结果报告;
43.步骤s2中,预先在浏览器测试中设置有用例库,用例库中设置多个站点所在的浏览器页面,接收参数修改指令,修改浏览器测试用例库中的浏览器页面相关测试参数;
44.步骤s2中,测试用例采用独立树构建方式,完成一整套用例测试,框架采用_case _assert _element的用例结构,页面元素和元素操作方法进行隔离并统一管理,测试用例不仅可支持对ui上元素点击输入等操作,还支持直接查询数据库的功能,可从数据库sql查询结果,然后和前端返回的数据进行断言比对;
45.图形用户界面(graphical user interface,简称gui,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务;
46.s3、进行检查工作:检查当前运行的环境,检查当前浏览器类型和版本号,检查本地是否有可用的driver;
47.步骤s3中,首先检查当前运行的环境,当前运行的环境包括mac和win,然后再检查当前浏览器类型和版本号,当前浏览器同时兼容谷歌、火狐等浏览器,也支持扩展更多浏览
器,解决市面各种浏览器和各种版本所导致的大量兼容测试;
48.步骤s3中,在检查当前运行的环境和当前浏览器类型和版本号之后,最后再检查本地是否有可用的driver,有则直接启动所述浏览器,没有则自动下载driver,然后再启动浏览器,自动下载driver部署后,可自动下载相符的驱动并单独存放;
49.s4、启动浏览器:首先自动下载driver以后,然后再启动浏览器;
50.步骤s4中,首先判断用户是否为注册用户,在判断用户为注册用户之后,接收用户发送的浏览器测试用例,然后在接收到用户发送的浏览器测试用例之后,判断浏览器测试用例是否满足测试用例的规范要求,在判断浏览器测试用例满足测试用例的规范要求时,最后再调用浏览器测试用例库中的浏览器页面运行浏览器测试用例;
51.s5、操作浏览器:首先登录指定地址,然后再对页面元素查找并判断,以及操作所述页面元素,最后再返回操作后结果;
52.步骤s5中,在每次自动执行自动化用例完成后系统自动生成allure报告以测试套,测试类,测试用例的多层级多维度统计断言数据;
53.s6、生成报告:返回所述操作后结果之后,首先对结果断言,然后再生成报告,最后再关闭所述浏览器;
54.步骤s6中,生成报告自动生成测试报告,能在多维度查看测试结果,评估测试结果,实现了前后端交互数据的正确性验证;
55.针对中教云智慧教学平台web端提升回归功能测试用例覆盖率,节省软件迭代中测试人工成本问题,提供了一种基于selenium pytest allure实现控制web页面各个元素的方法解决了随着产品功能的迭代,需要多次冒烟测试,解决了日常测试中大量重复性功能测试所需的操作;
56.selenium是一个用于web应用程序测试的工具。selenium测试直接运行在浏览器中,就像真正的用户在操作一样;
57.提供了一套针对web端模拟人工页面操作的自动化测试脚本,能够每个周期自动执行,代替人工枯燥的测试,节省人工成本且提高测试效率,框架采用case _assert _element的用例结构,页面元素和元素操作方法进行隔离并统一管理,易于系统在迭代中快速的维护脚本,同时对后期用例的增减配置灵活,依赖少,自动生成测试报告,能在多维度查看测试结果,评估测试结果;
58.一个项目最终由快速迭代走向以维护为主的状态,在合适的时机引入自动化能有效减少人工维护成本。自动化测试的收益可以简单总结为:
59.自动化的收益=迭代次数*全手动执行成本-首次自动化成本-维护次数*维护成本
60.对于自动化测试来说,相对于发现未知的问题,更倾向于避免可能的问题。
61.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献