System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件自动化测试,特别是涉及一种解释器的测试方法、装置和计算机设备。
技术介绍
1、在仿真测试领域中,很多软件有脚本编辑功能的需求,通常内置解释器来实现软件的脚本编辑器功能,再通过封装自定义的方法实现一些特定的功能。对于这类软件,要测试其编辑器所提供的方法是否能正常使用,测试工程师一般会在软件编辑器中编写程序脚本来验证这些方法,但是这种方式通常测试效率比较低,后续测试脚本的维护与更新不够灵活快速,测试结果在展示上也不够直观。
技术实现思路
1、基于此,本申请目的在于提供一种能够提高测试灵活性和准确性的解释器测试方法、装置和计算机设备,来解决上述
技术介绍
中提及的技术问题。
2、第一方面,本申请提供了一种解释器的测试方法。包括:
3、根据待测试需求确定所述本地解释器环境中的目标测试函数;
4、从脚本模块中加载所述目标测试函数对应的目标脚本,并通过通信模块将所述目标脚本发送到远程解释器;
5、接收所述远程解释器执行所述目标脚本时得到的测试结果,并按照所述目标测试函数的类型将所述测试结果进行展示。
6、在一个实施例中,根据待测试需求确定所述本地解释器环境中的目标测试函数,包括:根据用户响应触发的待测试需求,确定对应的文件名参数;所述待测试需求关联不同的编程库和框架中用于执行核心功能的关键方法;根据所述文件名参数进行函数调用,得到目标测试函数。
7、在一个实施例中,通过通信模块将所述目标脚本发送到远程解释器,包括
8、在一个实施例中,基于所述静态方法调用所述通信模块,以实现将目标脚本发送到远程解释器,包括:基于静态方法调用通信模块中的通信方法,并通过所述通信方法建立和所述远程解释器之间的网关;通过网关实例对应的代码方法定义与所述远程解释器之间的通信动作,以实现所述目标脚本的发送。
9、在一个实施例中,从脚本模块中加载所述目标测试函数对应的目标脚本之后,还包括:从配置模块中加载所述待测试需求对应的环境配置信息;所述环境配置信息至少包括配置模块工程路径、图片基路径、日志路径、测试报告路径和被测软件安装路径;通过所述通信模块将所述目标脚本和环境配置信息发送到远程解释器,以使远程解释器加载所述环境配置信息并执行所述目标脚本,得到测试结果。
10、在一个实施例中,远程解释器加载所述环境配置信息并执行所述目标脚本,得到测试结果的过程包括:通过断言语句初步验证所述目标脚本的输出是否符合预期;当所述目标脚中的所有断言都通过时,通过目标测试框架加载所述环境配置信息并执行所述目标脚本,得到测试结果。
11、在一个实施例中,本地解释器和远程解释器为运行在同一终端或不同终端的python 解释器;所述目标测试函数为基于python 测试框架的pytest测试函数;所述通信模块为实现多个解释器之间通信和代码执行的execnet模块,execnet模块是基于python程序的分布式计算库。
12、第二方面,本申请还提供了一种解释器的测试装置。包括:
13、测试函数确定模块,用于根据待测试需求确定所述本地解释器环境中的目标测试函数;
14、目标脚本发送模块,用于从脚本模块中加载所述目标测试函数对应的目标脚本,并通过通信模块将所述目标脚本发送到远程解释器;
15、测试结果展示模块,用于接收所述远程解释器执行所述目标脚本时得到的测试结果,并按照所述目标测试函数的类型将所述测试结果进行展示。
16、第三方面,本申请还提供了一种计算机设备。计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以上解释器的测试方法的步骤。
17、第四方面,本申请还提供了一种计算机可读存储介质。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现以上解释器的测试方法的步骤。
18、上述解释器的测试方法、装置、计算机设备和可读存储介质,根据待测试需求确定本地解释器环境中的目标测试函数,接着从脚本模块中加载目标测试函数对应的目标脚本,并通过通信模块将目标脚本发送到远程解释器,使得在接收远程解释器执行目标脚本时得到的测试结果时,可按照目标测试函数的类型将测试结果进行展示。因此,通过将目标脚本从本地解释器环境自动加载到远程解释器并执行,这极大地提高了测试环境的灵活性,可以解决在一些没有软件授权的终端上直接通过跨解释器的特性运行自动化脚本,以此来调用通过授权终端的解释器,实现自动化测试的灵活部署。并且测试环境与开发环境隔离开来,减少了环境因素对测试结果的影响,从而提高了测试结果的可靠性和准确性。
本文档来自技高网...【技术保护点】
1.一种解释器的测试方法,其特征在于,应用在本地解释器,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据待测试需求确定所述本地解释器环境中的目标测试函数,包括:
3.根据权利要求1所述的方法,其特征在于,所述通过通信模块将所述目标脚本发送到远程解释器,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于所述静态方法调用所述通信模块,以实现将所述目标脚本发送到远程解释器,包括:
5.根据权利要求1所述的方法,其特征在于,所述从脚本模块中加载所述目标测试函数对应的目标脚本之后,还包括:
6.根据权利要求5项所述的方法,其特征在于,远程解释器加载所述环境配置信息并执行所述目标脚本,得到测试结果的过程包括:
7.根据权利要求1至6任意一项所述的方法,其特征在于,所述本地解释器和所述远程解释器为运行在同一终端或不同终端的Python 解释器;所述目标测试函数为基于Python测试框架的pytest测试函数;所述通信模块为实现多个解释器之间通信和代码执行的execnet模块,execnet模块是基于Pyt
8.一种解释器的测试装置,其特征在于,所述装置包括:
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种解释器的测试方法,其特征在于,应用在本地解释器,包括:
2.根据权利要求1所述的方法,其特征在于,所述根据待测试需求确定所述本地解释器环境中的目标测试函数,包括:
3.根据权利要求1所述的方法,其特征在于,所述通过通信模块将所述目标脚本发送到远程解释器,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于所述静态方法调用所述通信模块,以实现将所述目标脚本发送到远程解释器,包括:
5.根据权利要求1所述的方法,其特征在于,所述从脚本模块中加载所述目标测试函数对应的目标脚本之后,还包括:
6.根据权利要求5项所述的方法,其特征在于,远程解释器加载所述环境配置信息并执行所述目标脚本,得到测试结果的过程包括:
7.根...
【专利技术属性】
技术研发人员:胡俊杰,
申请(专利权)人:长沙科梁科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。