播放器自动测试方法及装置与流程

文档序号:31540991发布日期:2022-09-16 23:52阅读:135来源:国知局
播放器自动测试方法及装置与流程

1.本发明涉及软件测试技术领域,特别是涉及一种播放器自动测试方法及装置。


背景技术:

2.随着科学技术的发展,计算机已经成为人们最普遍使用的音乐聆听设备以及视频观看设备,而要通过计算机听音乐和看视频,必须有播放器支持。为了保证播放器的性能,通常需要对播放器进行测试。
3.传统的测试播放器的方法,通常采用手动或模拟用户操作的方式进行测试,例如手动点击播放器的起播按钮,或者通过测试工具指挥一个触点移动到起播按钮,然后点击,来模仿用户的点击操作,以测试播放器的起播功能是否正常。但播放器的异常通常存在各种各样的因素,涉及到的应用场景较多,通过手动的方式进行测试的效率较低,有些应用场景即使模拟用户操作也无法实现。


技术实现要素:

4.有鉴于此,本发明提供一种播放器自动测试方法,通过该方法,可以通过播放器接口、播放器所属设备以及模拟用户操作对应的多个测试场景对播放器进行测试,全面覆盖播放器涉及到的各个应用场景,节约测试效率。
5.本发明还提供了一种播放器自动测试装置,用以保证上述方法在实际中的实现及应用。
6.一种播放器自动测试方法,包括:
7.当需要对播放器进行自动测试时,确定所述播放器当前进行自动测试的测试类型及所述测试类型对应的至少一个测试场景,所述测试类型包括播放器接口测试、所述播放器所属设备的设备测试以及播放器ui测试;
8.启动所述测试类型对应的测试工具;
9.应用所述测试工具执行所述测试场景对应的自动化测试脚本,获得所述测试场景对应的测试结果;
10.将所述测试结果与所述测试场景对应的预期结果进行比对,获得比对结果;
11.基于所述比对结果,生成所述播放器在当前的自动测试过程对应的测试日志。
12.上述的方法,可选的,所述应用所述测试工具执行所述自动化测试脚本,获得所述测试场景对应的测试结果,包括:
13.当所述测试类型为播放器接口测试时,确定所述测试工具为mitmproxy,所述播放器接口测试对应多个接口测试场景,各个所述接口测试场景用于模拟该接口测试场景对应的播放器接口的响应,所述mitmproxy为python语言下的开源代理工具;
14.启动预先设置的代理服务设备;
15.加载所述播放器接口测试对应的多个接口测试场景对应的测试桩列表,所述测试桩列表包含多个测试桩,每个所述测试桩对应一个接口测试场景;
16.应用所述代理服务设备控制所述播放器向任一接口测试场景对应的播放器接口发送接口请求,并获取所述接口请求中的目标url;
17.将所述目标url与所述接口测试场景对应的真实url进行比对;
18.当比对一致时,获取所述测试桩列表中所述接口测试场景对应的接口自动化测试脚本;
19.应用所述mitmproxy执行所述接口自动化测试脚本,获得所述接口测试场景对应的播放器接口的返回数据。
20.上述的方法,可选的,所述应用所述测试工具执行所述自动化测试脚本,获得所述测试场景对应的测试结果,包括:
21.当所述测试类型为所述播放器所属设备的设备测试时,确定所述测试工具为android集成开发工具,所述播放器所属设备的设备测试对应的测试场景用于模拟所述设备在磁盘空间不足时所述播放器的运行;
22.应用所述android集成开发工具采集测试文件,并向所述设备传输测试文件直至填满所述磁盘空间;
23.获取预先设置的所述播放器对应的播放器运行脚本;
24.应用所述android集成开发工具执行所述播放器运行脚本,获得运行结果。
25.上述的方法,可选的,获得所述运行结果之后,还包括:
26.应用所述android集成开发工具将所述磁盘空间中的测试文件删除。
27.上述的方法,可选的,所述应用所述测试工具执行所述自动化测试脚本,获得所述测试场景对应的测试结果,包括:
28.当所述测试类型为播放器ui测试时,确定所述测试工具为用户模拟工具appium,所述播放器ui测试对应的测试场景用于模拟用户通过对ui界面对所述播放器的操作;
29.获取预先设置的模拟用户操作脚本;
30.应用所述appium执行所述用户操作脚本,获得操作结果。
31.一种播放器自动测试装置,包括:
32.确定单元,用于当需要对播放器进行自动测试时,确定所述播放器当前进行自动测试的测试类型及所述测试类型对应的至少一个测试场景,所述测试类型包括播放器接口测试、所述播放器所属设备的设备测试以及播放器ui测试;
33.启动单元,用于启动所述测试类型对应的测试工具;
34.执行单元,用于应用所述测试工具执行所述测试场景对应的自动化测试脚本,获得所述测试场景对应的测试结果;
35.比对单元,用于将所述测试结果与所述测试场景对应的预期结果进行比对,获得比对结果;
36.生成单元,用于基于所述比对结果,生成所述播放器在当前的自动测试过程对应的测试日志。
37.上述的装置,可选的,所述执行单元,包括:
38.第一确定子单元,用于当所述测试类型为播放器接口测试时,确定所述测试工具为mitmproxy,所述播放器接口测试对应多个接口测试场景,各个所述接口测试场景用于模拟该接口测试场景对应的播放器接口的响应,所述mitmproxy为python语言下的开源代理
工具;
39.启动子单元,用于启动预先设置的代理服务设备;
40.加载子单元,用于加载所述播放器接口测试对应的多个接口测试场景对应的测试桩列表,所述测试桩列表包含多个测试桩,每个所述测试桩对应一个接口测试场景;
41.第一获取子单元,用于应用所述代理服务设备控制所述播放器向任一接口测试场景对应的播放器接口发送接口请求,并获取所述接口请求中的目标url;
42.比对子单元,用于将所述目标url与所述接口测试场景对应的真实url进行比对;
43.第二获取子单元,用于当比对一致时,获取所述测试桩列表中所述接口测试场景对应的接口自动化测试脚本;
44.第一执行子单元,用于应用所述mitmproxy执行所述接口自动化测试脚本,获得所述接口测试场景对应的播放器接口的返回数据。
45.上述的装置,可选的,所述执行单元,包括:
46.第二确定子单元,用于当所述测试类型为所述播放器所属设备的设备测试时,确定所述测试工具为android集成开发工具,所述播放器所属设备的设备测试对应的测试场景用于模拟所述设备在磁盘空间不足时所述播放器的运行;
47.传输子单元,用于应用所述android集成开发工具采集测试文件,并向所述设备传输测试文件直至填满所述磁盘空间;
48.第三获取子单元,用于获取预先设置的所述播放器对应的播放器运行脚本;
49.第二执行子单元,用于应用所述android集成开发工具执行所述播放器运行脚本,获得运行结果。
50.上述的装置,可选的,还包括:
51.删除子单元,用于应用所述android集成开发工具将所述磁盘空间中的测试文件删除。
52.上述的装置,可选的,所述执行单元,包括:
53.第三确定子单元,用于当所述测试类型为播放器ui测试时,确定所述测试工具为用户模拟工具appium,所述播放器ui测试对应的测试场景用于模拟用户通过对ui界面对所述播放器的操作;
54.第四获取子单元,用于获取预先设置的模拟用户操作脚本;
55.第三执行子单元,用于应用所述appium执行所述用户操作脚本,获得操作结果。
56.一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述的播放器自动测试方法。
57.一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行上述的播放器自动测试方法。
58.与现有技术相比,本发明包括以下优点:
59.本发明提供了一种播放器自动测试方法,包括:当需要对播放器进行自动测试时,确定所述播放器当前进行自动测试的测试类型及所述测试类型对应的至少一个测试场景,所述测试类型包括播放器接口测试、所述播放器所属设备的设备测试以及播放器ui测试;启动所述测试类型对应的测试工具;应用所述测试工具执行所述测试场景对应的自动化测
试脚本,获得所述测试场景对应的测试结果;将所述测试结果与所述测试场景对应的预期结果进行比对,获得比对结果;基于所述比对结果,生成所述播放器在当前的自动测试过程对应的测试日志。应用本发明提供的方法,可以通过播放器接口、播放器所属设备以及模拟用户操作对应的多个测试场景对播放器进行测试,全面覆盖播放器涉及到的各个应用场景,节约测试效率。
附图说明
60.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
61.图1为本发明实施例提供的一种播放器自动测试方法的方法流程图;
62.图2为本发明实施例提供的一种播放器自动测试方法的方法示例图;
63.图3为本发明实施例提供的一种播放器自动测试方法的又一方法示例图;
64.图4为本发明实施例提供的一种播放器自动测试方法的再一方法示例图;
65.图5为本发明实施例提供的一种播放器自动测试装置的装置结构图;
66.图6为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
67.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
68.在本技术中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
69.本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
70.本发明实施例提供了一种播放器自动测试方法,该方法可以应用在多种系统平台,其执行主体可以为计算机终端或各种移动设备的处理器,所述方法的方法流程图如图1所示,具体包括:
71.s101:当需要对播放器进行自动测试时,确定所述播放器当前进行自动测试的测试类型及所述测试类型对应的至少一个测试场景。
72.其中,所述测试类型包括播放器接口测试、所述播放器所属设备的设备测试以及
播放器ui测试。
73.在本发明中,可以由用户触发对播放器进行自动测试,也可以设置测试时间自动触发播放器进行自动测试。当用户触发测试时,由用户选择需要测试的测试类型;当根据测试时间自动测试时,可以预先设置在某个时间点进行某一测试场景对应的测试。
74.需要说明的是,播放器接口测试用于模拟接口接口错误、接口解析错误、响应超时、播放流超时以及播放流格式错误等情况下播放器的运行;设备测试则用于模拟文件路径不存在、存储已满等情况下播放器的运行;播放器ui测试用于模拟用户通过ui界面对播放器的操作。
75.s102:启动所述测试类型对应的测试工具。
76.需要说明的是,当测试类型为播放器接口测试时,其对应的测试工具为mitmproxy,mitmproxy为python开源代理工具,本发明可以使用nginx+mitmproxy搭建服务来模拟视频流服务、接口错误、接口返回解析错误等。当测试类型为设备测试时,其对应的测试工具可以为android集成开发工具。当测试类型为播放器ui测试时,其对应的测试工具可以为appium。
77.s103:应用所述测试工具执行所述测试场景对应的自动化测试脚本,获得所述测试场景对应的测试结果。
78.需要说明的是,每个测试场景对应一个自动化测试脚本,该自动化测试脚本可以运行其对应的测试场景下播放器模拟操作的过程,例如:自动化测试脚本模拟发送视频流请求时视频流接口返回视频流的过程。
79.s104:将所述测试结果与所述测试场景对应的预期结果进行比对,获得比对结果。
80.需要说明的是,预期结果为播放器正常运行的情况下的操作结果。若测试结果与预期结果一致,比对结果则表征播放器为正常,反之则表征播放器异常。
81.s105:基于所述比对结果,生成所述播放器在当前的自动测试过程对应的测试日志。
82.需要说明的是,生成测试日志后,可以将测试结果发送给技术人员,技术人员可以根据测试日志中的信息进一步优化播放器的性能。
83.本发明实施例提供的方法中,当需要对播放器进行测试时,确定当前的测试类型及对应的测试场景。当需要对任意的测试场景进行测试时,启动该测试类型对应的测试工具,由测试工具执行该测试场景对应的自动化测试脚本,获得测试结果。将测试结果与预期结果比对,并根据比对结果生成对应的测试数据。
84.应用本发明实施例提供的方法,可以通过播放器接口、播放器所属设备以及模拟用户操作对应的多个测试场景对播放器进行测试,全面覆盖播放器涉及到的各个应用场景,节约测试效率。
85.在本发明实施例中,对播放器的测试有三种测试类型分别为播放器接口测试、所述播放器所属设备的设备测试以及播放器ui测试。
86.如图2所示的示例图,当测试类型为播放器接口测试时,应用测试工具执行自动化测试脚本,获得测试场景对应的测试结果的过程,具体可以包括:
87.s201:当所述测试类型为播放器接口测试时,确定所述测试工具为mitmproxy。
88.其中,所述播放器接口测试对应多个接口测试场景,各个所述接口测试场景用于
模拟该接口测试场景对应的播放器接口的响应,所述mitmproxy为python语言下的开源代理工具。
89.s202:启动预先设置的代理服务设备。
90.需要说明的是,代理服务设备为可以是设置于播放器内的操作模块,也可以是设置于播放器所属设备内的应用软件或应用工具。
91.s203:加载所述播放器接口测试对应的多个接口测试场景对应的测试桩列表。
92.其中,所述测试桩列表包含多个测试桩,每个所述测试桩对应一个接口测试场景。测试桩列表中包含每个接口测试场景对应的接口自动化测试脚本。
93.s204:应用所述代理服务设备控制所述播放器向任一接口测试场景对应的播放器接口发送接口请求,并获取所述接口请求中的目标url。
94.需要说明的是,获取目标url对应的执行逻辑为:curl=flow.request.url。
95.s205:将所述目标url与所述接口测试场景对应的真实url进行比对。
96.需要说明的是,将目标url与真实url进行比对的执行逻辑为:
97.ifre.search(curl,url)!=none:
98.self.setresponse_test(flow,ur,curl)
99.s206:当比对一致时,获取所述测试桩列表中所述接口测试场景对应的接口自动化测试脚本。
100.s207:应用所述mitmproxy执行所述接口自动化测试脚本,获得所述接口测试场景对应的播放器接口的返回数据。
101.其中,该返回数据为该接口测试场景对应的测试结果。
102.需要说明的是,根据当前场景下自动化脚本传递参数res来判断模拟返回数据的数据类型;返回数据的数据类型包括:接口错误、接口超时以及返回指定文本等;当返回数据的数据类型为接口错误时,向播放器发送指定接口错误的状态码;当返回数据的数据类型为接口超时时,向播放器发送超时后返回的正常接口请求;当返回数据的数据类型为返回指定文本时,向播放器返回正常的指定文本、解析错误的指定文本或指定视频的视频流。其中,当返回数据的数据类型为接口超时,可以预先设置超时时间,并等待超时时间后再返回正常接口请求。
103.在本发明实时中,返回数据的数据类型为接口错误的具体执行逻辑可以为:
104.ifstr(text[1]).find('code_')!=-1:
[0105]
code=text[1].split('_')
[0106]
flow.response.status_code=co de1.[0107]
其中,接口错误的具体执行逻辑中的返回接口错误用code_xx(xx为状态码如404、500)表示。当返回数据的数据类型为接口错误时,向播放器发送对应的状态码,并应用预先设置的ui脚本检查返回数据是否符合预期,即,检查向播放器返回的状态码是否为对播放器接口进行模拟测试的预期结果。
[0108]
例如:接口自动化测试脚本用于模拟向播放器接口发送请求使得该接口返回404状态码,当应用mitmproxy执行接口自动化测试脚本获得返回数据后,若向播放器发送的返回数据中包含404状态码,则表征该返回数据符合预期。
[0109]
在本发明实施例中,返回数据的数据类型为返回指定文本的具体执行逻辑可以
为:
[0110]
ifstr(text[1]).find('text_')!=-1:
[0111]
text=text[1].split('_')
[0112]
flow.response.set_text(text[1])
[0113]
其中,返回指定文本的具体执行逻辑中,指定的文本用text_xx(xx为返回内容)表示。当返回数据为返回指定文本时,向播放器发送指定文本,指定文本可以包括正常的指定文本、解析错误的指定文本以及指定视频的视频流。
[0114]
具体的,当返回指定文本为指定视频的视频流时,对应的执行逻辑可以为:
[0115]
ifstr(text[1]).find(redirect_')!=-1:
[0116]
redi=text[1].split('_')
[0117]
flow.response.set_text(text[1])
[0118]
其中,返回视频流redirect_xx(xx为视频流地址),重定向到视频流地址(视频流使用nginx来模拟)。
[0119]
本发明实施例提供的方法中,当测试类型为播放器接口测试时,该测试类型对应的测试工具为mitmproxy。启动代理服务设备并加载测试桩列表,测试桩列表中包含每个接口测试场景对应的接口自动化测试脚本。有代理服务设备控制播放器发送接口请求,并获取请求中的目标url,将目标url与真实url进行比对,比对一致时再获取测试桩列表中的接口自动化测试脚本,并应用测试工具mitmproxy执行该脚本获得播放器接口返回的返回数据。
[0120]
需要说明的是,在获得返回数据后,可以将该返回数据发送至播放器,应用ui脚本检查返回数据是否符合预期,同时也可以控制播放器的在ui界面上显示返回数据对应的信息,例如显示404状态码或正常播放视频等。
[0121]
如图3所示的示例图,当测试类型为播放器接口测试时,应用测试工具执行自动化测试脚本,获得测试场景对应的测试结果的过程,具体可以包括:
[0122]
s301:当所述测试类型为所述播放器所属设备的设备测试时,确定所述测试工具为android集成开发工具。
[0123]
其中,所述播放器所属设备的设备测试对应的测试场景用于模拟所述设备在磁盘空间不足时所述播放器的运行。
[0124]
需要说明的是,播放器所属设备为android设备。
[0125]
s302:应用所述android集成开发工具采集测试文件,并向所述设备传输测试文件直至填满所述磁盘空间。
[0126]
需要说明的是,android集成开发工具可以通过网络爬虫从网上采集测试文件。
[0127]
s303:获取预先设置的所述播放器对应的播放器运行脚本。
[0128]
s304:应用所述android集成开发工具执行所述播放器运行脚本,获得运行结果。
[0129]
其中,该运行结果为测试场景对应的测试结果。
[0130]
进一步地,获得所述运行结果之后,应用所述android集成开发工具将所述磁盘空间中的测试文件删除。
[0131]
本发明实施例提供的方法中,使用android集成开发工具android sdk中自带的命令行工具adb封装成自动化脚本可调用的函数来操作android设备,采集测试文件使设备磁
盘空间溢出,再执行播放器运行脚本,执行结束后的运行结果后,删除文件,避免导致视频流缓存写入时报错等,即,测试场景模拟完成后还原设备状态。
[0132]
其中,封装填满存储空间命令为:
[0133]
adb shell dd if=/dev/zero of=/mnt/sdcard/bigfile;
[0134]
封装删除文件命令为:
[0135]
adb shell rmpath1,#path1为android设备路径。
[0136]
如图4所示的示例图,当测试类型为播放器接口测试时,应用测试工具执行自动化测试脚本,获得测试场景对应的测试结果的过程,具体可以包括:
[0137]
s401:当所述测试类型为播放器ui测试时,确定所述测试工具为用户模拟工具appium。
[0138]
其中,所述播放器ui测试对应的测试场景用于模拟用户通过对ui界面对所述播放器的操作。
[0139]
s402:获取预先设置的模拟用户操作脚本。
[0140]
需要说明的是,该用户操作脚本用于实现用户应用播放器执行的各种操作,例如点击播放器的视频、音频进行播放、暂停等操作。
[0141]
s403:应用所述appium执行所述用户操作脚本,获得操作结果。
[0142]
其中,该操作结果为测试场景对应的测试结果。
[0143]
需要说明的是,使用appium模拟用户操作来进行视频播放等操作,每次播放接口调用前初始化需要模拟的异常后进入播放场景,检查播放器是否有预期处理,存储结果后还原模拟的异常。
[0144]
基于上述实施例提供的方法,本发明实施例中播放器自动测试方法包括三种测试类型,每个测试类型对应至少一个测试场景。结合各个测试场景,播放器进行自动测试的各个测试场景可以包括但不局限于以下范围:
[0145]
(1)ui操作的正常功能:页面功能如播放、暂停、拖动、全屏、半屏;
[0146]
其中,模拟用户操作可以包括:
[0147]
进入播放-》播放器能正常播放视频;
[0148]
暂停播放-》停止播放视频、播放微暂停状态;
[0149]
拖动进度条快进-》视频快进到对应播放时间点;
[0150]
拖动进度条快退-》视频快退到对应播放时间点;
[0151]
点击全屏按钮-》全屏播放;
[0152]
点击半屏按钮-》切换到半屏播放。
[0153]
(2)不同视频流兼容性m3u8、flv、mp4;
[0154]
其中,在不同兼容性视频播放时模拟用户ui操作的过程可以包括:
[0155]
播放m3u8格式视频流-》视频正常播放、步骤(1)测试场景通过;
[0156]
播放flv格式视频流-》视频正常播放、步骤(1)测试场景通过;
[0157]
播放mp4格式视频流-》视频正常播放、步骤(1)测试场景通过。
[0158]
(3)视频流异常如切片缺失、拉流超时、解析flv文件失败;
[0159]
其中,在视频流异常时模拟播放器播放失败的过程可以包括:
[0160]
模拟视频流切片丢失进入播放-》提示播放失败、无崩溃;
[0161]
模拟视频流超时进入播放-》提示播放超时、无崩溃;
[0162]
模拟视频流flv进入播放-》提示播放失败、无崩溃。
[0163]
(4)播放相关接口请求失败如接口返回404、500等;
[0164]
其中,模拟接口请求失败的过程可以包括:
[0165]
模拟视频网络接口返回404进入播放-》播放失败、提示接口异常;
[0166]
模拟视频网络接口返回500进入播放-》播放失败、提示接口异常。
[0167]
(5)播放器相关接口返回数据解析失败如返回内容为空、返回内容缺失字段;
[0168]
其中,模拟接口返回异常的过程可以包括:
[0169]
模拟视频网络接口返回数据不符合预期(如本身返回json格式数据结果返回了一个list数据)进入播放-》播放失败、提示解析异常;
[0170]
模拟视频网络接口返回数据为空)进入播放-》播放失败、提示解析异常;
[0171]
模拟视频网络接口返回数据中缺失某一个关键字段)进入播放-》播放失败、提示解析异常。
[0172]
(6)播放器相关接口返回超时,如超过设置最大超时时间、等于设置超时时间、小于设置超时时间(播放器接口超时时间预设为60s);
[0173]
其中,模拟接口超时的过程可以包括:
[0174]
模拟接口超时59s进入播放-》等待一段时间后正常播放;
[0175]
模拟接口超时60s进入播放-》等待一段时间后正常播放;
[0176]
模拟接口超时61s进入播放-》等待一段时间后提示播放超时,播放失败。
[0177]
(7)播放器获取视频流失败;
[0178]
其中,模拟获取视频流失败的过程可以为:模拟视频流接口返回500错误进入播放-》播放失败、提示视频流异常。
[0179]
(8)播放器缓存目录缺失;
[0180]
其中,模拟播放器缓存目录缺失的过程可以为:模拟删除播放缓存目录进入播放-》播放失败、提示获取视频源异常。
[0181]
上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。
[0182]
与图1所述的方法相对应,本发明实施例还提供了一种播放器自动测试装置,用于对图1中方法的具体实现,本发明实施例提供的播放器自动测试装置可以应用计算机终端或各种移动设备中,其结构示意图如图5所示,具体包括:
[0183]
确定单元501,用于当需要对播放器进行自动测试时,确定所述播放器当前进行自动测试的测试类型及所述测试类型对应的至少一个测试场景,所述测试类型包括播放器接口测试、所述播放器所属设备的设备测试以及播放器ui测试;
[0184]
启动单元502,用于启动所述测试类型对应的测试工具;
[0185]
执行单元503,用于应用所述测试工具执行所述测试场景对应的自动化测试脚本,获得所述测试场景对应的测试结果;
[0186]
比对单元504,用于将所述测试结果与所述测试场景对应的预期结果进行比对,获得比对结果;
[0187]
生成单元505,用于基于所述比对结果,生成所述播放器在当前的自动测试过程对应的测试日志。
[0188]
本发明实施例提供的装置中,当需要对播放器进行测试时,确定当前的测试类型及对应的测试场景。当需要对任意的测试场景进行测试时,启动该测试类型对应的测试工具,由测试工具执行该测试场景对应的自动化测试脚本,获得测试结果。将测试结果与预期结果比对,并根据比对结果生成对应的测试数据。
[0189]
应用本发明实施例提供的装置,可以通过播放器接口、播放器所属设备以及模拟用户操作对应的多个测试场景对播放器进行测试,全面覆盖播放器涉及到的各个应用场景,节约测试效率。
[0190]
本发明实施例提供的装置中,所述执行单元503,包括:
[0191]
第一确定子单元,用于当所述测试类型为播放器接口测试时,确定所述测试工具为mitmproxy,所述播放器接口测试对应多个接口测试场景,各个所述接口测试场景用于模拟该接口测试场景对应的播放器接口的响应,所述mitmproxy为python语言下的开源代理工具;
[0192]
启动子单元,用于启动预先设置的代理服务设备;
[0193]
加载子单元,用于加载所述播放器接口测试对应的多个接口测试场景对应的测试桩列表,所述测试桩列表包含多个测试桩,每个所述测试桩对应一个接口测试场景;
[0194]
第一获取子单元,用于应用所述代理服务设备控制所述播放器向任一接口测试场景对应的播放器接口发送接口请求,并获取所述接口请求中的目标url;
[0195]
比对子单元,用于将所述目标url与所述接口测试场景对应的真实url进行比对;
[0196]
第二获取子单元,用于当比对一致时,获取所述测试桩列表中所述接口测试场景对应的接口自动化测试脚本;
[0197]
第一执行子单元,用于应用所述mitmproxy执行所述接口自动化测试脚本,获得所述接口测试场景对应的播放器接口的返回数据。
[0198]
本发明实施例提供的装置中,所述执行单元503,包括:
[0199]
第二确定子单元,用于当所述测试类型为所述播放器所属设备的设备测试时,确定所述测试工具为android集成开发工具,所述播放器所属设备的设备测试对应的测试场景用于模拟所述设备在磁盘空间不足时所述播放器的运行;
[0200]
传输子单元,用于应用所述android集成开发工具采集测试文件,并向所述设备传输测试文件直至填满所述磁盘空间;
[0201]
第三获取子单元,用于获取预先设置的所述播放器对应的播放器运行脚本;
[0202]
第二执行子单元,用于应用所述android集成开发工具执行所述播放器运行脚本,获得运行结果。
[0203]
本发明实施例提供的装置中,还包括:
[0204]
删除子单元,用于应用所述android集成开发工具将所述磁盘空间中的测试文件删除。
[0205]
本发明实施例提供的装置中,所述执行单元503,包括:
[0206]
第三确定子单元,用于当所述测试类型为播放器ui测试时,确定所述测试工具为用户模拟工具appium,所述播放器ui测试对应的测试场景用于模拟用户通过对ui界面对所述播放器的操作;
[0207]
第四获取子单元,用于获取预先设置的模拟用户操作脚本;
[0208]
第三执行子单元,用于应用所述appium执行所述用户操作脚本,获得操作结果。
[0209]
以上本发明实施例公开的播放器自动测试装置中各个单元及子单元的具体工作过程,可参见本发明上述实施例公开的播放器自动测试方法中的对应内容,这里不再进行赘述。
[0210]
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述播放器自动测试方法。
[0211]
本发明实施例还提供了一种电子设备,其结构示意图如图6所示,具体包括存储器601,以及一个或者一个以上的指令602,其中一个或者一个以上指令602存储于存储器601中,且经配置以由一个或者一个以上处理器603执行所述一个或者一个以上指令602进行以下操作:
[0212]
当需要对播放器进行自动测试时,确定所述播放器当前进行自动测试的测试类型及所述测试类型对应的至少一个测试场景,所述测试类型包括播放器接口测试、所述播放器所属设备的设备测试以及播放器ui测试;
[0213]
启动所述测试类型对应的测试工具;
[0214]
应用所述测试工具执行所述测试场景对应的自动化测试脚本,获得所述测试场景对应的测试结果;
[0215]
将所述测试结果与所述测试场景对应的预期结果进行比对,获得比对结果;
[0216]
基于所述比对结果,生成所述播放器在当前的自动测试过程对应的测试日志。
[0217]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0218]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现。
[0219]
为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0220]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1