测试数据管理方法、装置、电子设备及计算机存储介质与流程

文档序号:30651498发布日期:2022-07-06 00:03阅读:81来源:国知局
测试数据管理方法、装置、电子设备及计算机存储介质与流程

1.本发明涉及计算机技术领域,尤其涉及一种测试数据管理方法、装置、电子设备及计算机存储介质。


背景技术:

2.随着互联网行业的快速发展,庞大的系统也越来越多了;对于庞大的系统而言,接口测试已经成为不可缺少的一环,因此应用的接口测试的重视程度越来越高。
3.目前,接口测试用例的编写方式是测试人员需要抓包或者从开发同事手中获取到接口定义,然后手工录入到接口测试平台中,并且需要在接口测试环境造好数据,再根据造好的数据来编写接口测试用例和接口。由于通过人工的方式编写接口测试用例和接口的效率较低。


技术实现要素:

4.有鉴于此,本发明实施例提供一种测试数据管理方法、装置、电子设备及计算机存储介质,以解决现有技术中存在的编写接口测试用例和接口的效率较低的问题。
5.为实现上述目的,本发明实施例提供如下技术方案:
6.本发明实施例第一方面示出了一种测试数据管理方法,所述方法包括:
7.获取测试环境的流量数据;
8.对所述流量数据进行处理,确定用于生成测试用例的请求表数据;
9.在接收到用户上传的测试用例生成指令时,基于所述请求表数据和测试需求生成测试用例。
10.可选的,所述对所述流量数据进行处理,确定用于生成测试用例的请求表数据,包括:
11.对所述流量数据进行过滤处理,得到过滤后的流量信息;
12.基于测试需求确定用于生成测试用例的请求表数据。
13.可选的,还包括:
14.对所述流量数据进行处理,确定用于生成接口的接口表数据;
15.在接收到用户上传的接口生成指令时,基于所述请求表数据和测试需求生成接口。
16.可选的,对所述流量数据进行处理,确定用于生成接口的接口表数据,包括:
17.对所述流量数据进行过滤处理,得到过滤后的流量信息;
18.基于测试需求确定用于生成接口的接口表数据。
19.本发明实施例第二方面示出了一种测试数据管理装置,所述装置包括:流量收集模块,用于获取测试环境的流量数据;
20.处理模块,用于对所述流量数据进行处理,确定用于生成测试用例的请求表数据;
21.数据转用例模块,用于在接收到用户上传的测试用例生成指令时,基于所述请求
表数据和测试需求生成测试用例。
22.可选的,所述对所述流量数据进行处理,确定用于生成测试用例的请求表数据的处理模块,具体用于:
23.对所述流量数据进行过滤处理,得到过滤后的流量信息;
24.基于测试需求确定用于生成测试用例的请求表数据。
25.可选的,所述处理模块,还用于对所述流量数据进行处理,确定用于生成接口的接口表数据;
26.相应的,所述还包括数据转接口模块;
27.数据转接口模块,用于在接收到用户上传的接口生成指令时,基于所述请求表数据和测试需求生成接口。
28.可选的,所述对所述流量数据进行处理,确定用于生成接口的接口表数据的处理模块,具体用于:
29.对所述流量数据进行过滤处理,得到过滤后的流量信息;
30.基于测试需求确定用于生成接口的接口表数据。
31.本发明实施例第三方面示出了一种电子设备,所述电子设备用于运行程序,其中,所述程序运行时执行如本发明实施例第一方面示出的测试数据管理方法。
32.本发明实施例第四方面示出了一种计算机存储介质,所述存储介质包括存储程序,其中,在所述程序运行时控制所述存储介质所在设备执行如本发明实施例第一方面示出的测试数据管理方法。
33.基于上述本发明实施例提供的一种测试数据管理方法、装置、电子设备及计算机存储介质,获取测试环境的流量数据;对所述流量数据进行处理,确定用于生成测试用例的请求表数据;在接收到用户上传的测试用例生成指令时,基于所述请求表数据和测试需求生成测试用例。在本发明实施例中,不需要人工进行录入,通过对流量数据进行处理,确定用于生成测试用例的请求表数据和用于生成接口的接口表数据;在接收到用户上传的测试用例生成指令时,基于请求表数据和测试需求生成测试用例。在接收到用户上传的接口生成指令时,基于请求表数据和测试需求生成接口。通过上述不仅能够提高编写接口测试用例和接口的效率,且能够提高接口测试的速度。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
35.图1为本发明实施例示出的一种测试数据管理方法的流程示意图;
36.图2为本发明实施例示出的测试数据过程的示意图;
37.图3为本发明实施例示出的另一种测试数据管理方法的流程示意图;
38.图4为本发明实施例示出的在界面设计ui界面显示接口表数据的示意图;
39.图5为本发明实施例示出的在界面设计ui界面显示请求表数据的示意图;
40.图6为本发明实施例示出的添加接口信息界面的示意图;
41.图7为本发明实施例示出的添加用例信息界面的示意图;
42.图8为本发明实施例示出的测试数据管理过程的示意图;
43.图9为本发明实施例示出的一种测试数据管理装置的结构示意图;
44.图10为本发明实施例示出的另一测试数据管理装置的结构示意图。
具体实施方式
45.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
47.需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
48.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
49.由背景技术可知,目前,接口测试用例的编写方式是测试人员需要抓包或者从开发同事手中获取到接口定义,然后手工录入到接口测试平台中,并且需要在接口测试环境造好数据,再根据造好的数据来编写接口测试用例和接口。由于通过人工的方式编写接口测试用例和接口的效率较低,当维护多个接口或者接口参数非常多时,编写接口测试用例的工作会变得非常繁琐,从而容易导致接口测试用例的准确性不高。
50.在本发明实施例中,不需要人工进行录入,通过对流量数据进行处理,确定用于生成测试用例的请求表数据和用于生成接口的接口表数据;在接收到用户上传的测试用例生成指令时,基于请求表数据和测试需求生成测试用例。在接收到用户上传的接口生成指令时,基于请求表数据和测试需求生成接口。通过上述不仅能够提高编写接口测试用例和接口的效率,且能够提高接口测试的速度。
51.参见图1,为本发明实施例示出的一种测试数据管理方法,该方法包括:
52.步骤s101:获取测试环境的流量数据。
53.可选的,在待测试系统的服务器上部署流量收集工具goreplay,在获取到技术人员上传的命令行启动指令时,流量收集工具goreplay实时对待测试系统使用的端口进行监听。
54.s101的具体内容:在其他客户端向待测试系统发送超文本传输协议http请求时,通过部署的流量收集工具goreplay收集http流量,并将收集到的http流量转换成json格式的文件传送给卡夫卡kafka,最后利用斯普瑞布特springboot项目对goreplay工具推送到kafka的数据进行读取。
55.需要说明的是,流量数据是指http信息。
56.步骤s102:对所述流量数据进行处理,确定用于生成测试用例的请求表数据。
57.需要说明的是,具体实现步骤s102的过程中对所述流量数据进行处理,确定用于生成测试用例的请求表数据的过程,包括以下步骤:
58.步骤s11:对所述流量数据进行过滤处理,得到过滤后的流量信息。
59.需要说明的是,具体实现步骤s11的过程包括以下步骤:
60.步骤s21:判断所述流量数据是否为文本json格式的数据,若是,则执行步骤s22,若否,则对所述流量数据进行清洗,即过滤。
61.在具体实现步骤s21的过程中,确定流量数据的格式是否是json格式的数据,若是,则执行步骤s22,若否,则对所述流量数据进行清洗,即过滤。
62.步骤s22:判断所述流量数据中是否存在请求头信息,若是,则执行步骤s23,若否,则对所述流量数据进行清洗,即过滤。
63.在具体实现步骤s22的过程中,确定所述流量数据中是否存在请求头信息,若是,则执行步骤s23,若否,则对所述流量数据进行清洗,即过滤。
64.步骤s23:判断所述流量数据中是否存在主host请求头信息,若是,则执行步骤s24,若否,则对所述流量数据进行清洗,即过滤。
65.在具体实现步骤s23的过程中,确定所述流量数数据中的是否含有host请求头信息,若是,则执行步骤s24,若否,则对所述流量数据进行清洗,即过滤。
66.步骤s24:判断所述流量数据中是否存在post请求头信息,若是,则执行步骤s25,若否,则执行步骤s27。
67.在具体实现步骤s24的过程中,确定所述流量数据中是否存在post请求头信息,若是,则执行步骤s25,若否,则执行步骤s27。
68.需要说明的是,post请求头信息是指向指定的资源提交要被处理的数据。
69.步骤s25:判断所述流量数据中是否存在实体头部content-type请求头信息,若是,则执行步骤s26,若否,则对所述流量数据进行清洗,即过滤。
70.需要说明的是,实体头部content-type请求头信息用于指示实际返回的内容的内容类型。
71.步骤s26:判断所述实体头部content-type请求头信息是否为json或者参数form形式,若为json或者参数form形式,则执行步骤s27,若否,则对所述流量数据进行清洗,即过滤。
72.步骤s27:判断所述流量数据是否含有静态资源的请求,若否,则执行步骤s28,若
是,则对所述流量数据进行清洗,即过滤。
73.步骤s29:判断所述流量数据对应的响应是否为空,若否,则执行步骤s29,若是,则对所述流量数据进行清洗,即过滤。
74.步骤s30:判断所述流量数据对应的响应是否为json格式,若是,得到过滤后的流量信息,若否,则对所述流量数据进行清洗,即过滤。
75.可选的,在得到过滤后的流量信息之后,将其存储值数据库mysql。
76.相应的,基于上述步骤s21至步骤s30的具体实现过程,可如图2示出的数据处理过程的示意图所示。
77.步骤s12:基于测试需求确定用于生成测试用例的请求表数据。
78.在具体实现步骤s12的过程中,从过滤后的流量信息查找与测试需求中的用例需求对应的请求数据,并将请求数据写入请求表中,得到请求表数据。
79.需要说明的是,请求表用于展示单个接口所有次请求的信息,包括请求参数、请求头、响应体、响应头。
80.请求数据包括请求参数、请求头、响应体、响应头对应的信息。
81.步骤s103:在接收到用户上传的测试用例生成指令时,基于所述请求表数据和用例需求生成测试用例。
82.可选的,使用雅皮yapi平台作为接口管理和测试的载体,将yapi平台新增接口、新增用例的接口对外开放,此模块通过调用上述开放接口来生成接口和接口测试用例,从而实现流量数据转测试用例的功能。
83.需要说明的是,用户不需要登录,只需要在请求中带一个固定的令牌token即可直接调用yapi的新增接口、新增用例的接口。
84.在具体实现步骤s103的过程中,在接收到用户上传的测试用例生成指令时,yapi通过调用上述新增用例的接口对请求参数、请求头、响应体、响应头对应的信息,以及测试需求进行处理,生成对应的测试用例。
85.在本发明实施例中,不需要人工进行录入,通过对流量数据进行处理,确定用于生成测试用例的请求表数据;在接收到用户上传的测试用例生成指令时,基于请求表数据和测试需求生成测试用例。通过上述不仅能够提高编写接口测试用例和接口的效率,且能够提高接口测试的速度。
86.基于上述本发明实施例示出的测试数据管理方法,结合图1,参见图3,为本发明实施例示出的另一种测试数据管理方法的流程示意图,该方法包括:
87.步骤s301:获取测试环境的流量数据。
88.步骤s302:对所述流量数据进行处理,确定用于生成测试用例的请求表数据。
89.需要说明的是,步骤s301至步骤s302的具体过程与上述步骤s101至步骤s102的具体实现过程相同,可相互参见。
90.步骤s303:对所述流量数据进行处理,确定用于生成接口的接口表数据。
91.需要说明的是,具体实现步骤s303的过程中对所述流量数据进行处理,确定用于生成接口的接口表数据的过程,包括以下步骤:
92.步骤s31:对所述流量数据进行过滤处理,得到过滤后的流量信息。
93.需要说明的是,具体实现步骤s31的过程与上述具体实现步骤s11的过程相同,可
相互参见。
94.步骤s32:基于测试需求确定用于生成接口的接口表数据。
95.在具体实现步骤s32的过程中,从过滤后的流量信息查找与测试需求中的接口需求对应的接口数据,并将接口数据写入请求表中,得到接口表数据。
96.需要说明的是,接口表用于展示接口的信息,包括请求域名、请求路径、请求类型。
97.接口数据包括请求域名、请求路径、请求类型对应的信息。
98.步骤s304:判断是否接收到用户上传的测试用例生成指令,还是接收到用户上传的接口生成指令,在接收到用户上传的测试用例生成指令时,执行步骤s305;在接收到用户上传的接口生成指令时,执行步骤s306。
99.可选的,将接口表数据和请求表数据通过界面设计ui界面显示,以便用户可以在界面上查询到接口表数据和请求表数据。
100.在具体实现步骤s304的过程中,检测用户是否触发添加用例按钮,或者,触发添加接口按钮,若检测到用户触发添加用例按钮,说明接收到用户上传的测试用例生成指令,并执行步骤s305;若检测到用户触发添加接口按钮,说明接收到用户上传的接口生成指令,并执行步骤s306。
101.例如,在界面设计ui界面显示接口表数据,如图4所示。
102.如图4所示,接口表数据显示了host,path,id,类型,创建时间,接口信息等是否已经添加,以及操作记录。
103.例如,在界面设计ui界面显示请求表数据,如图5所示。
104.如图5所示,请求表数据显示了host,path,id,类型,创建时间,接口信息等是否已经添加,操作记录,query参数,body参数,请求相应,调用时间等信息。
105.例如,若检测到用户触发添加接口按钮,需要获取用户输入的导入分类和接口名称对应的信息,如图6所示。
106.例如,若检测到用户触发添加用例按钮,需要获取用户输入的导入测试集和用例名对应的信息,如图7所示。
107.步骤s305:基于所述请求表数据和用例需求生成测试用例。
108.需要说明的是,步骤s305的具体实现过程与上述步骤s103的具体实现过程相同,可相互参见。
109.步骤s306:基于所述请求表数据和测试需求生成接口。
110.可选的,使用雅皮yapi平台作为接口管理和测试的载体,将yapi平台新增接口、新增用例的接口对外开放,此模块通过调用上述开放接口来生成接口和接口测试用例,从而实现流量数据转测试用例的功能。
111.需要说明的是,用户不需要登录,只需要在请求中带一个固定的令牌token即可直接调用yapi的新增接口、新增用例接口。
112.在具体实现步骤s306的过程中,yapi通过调用上述新增接口对请求域名、请求路径、请求类型对应的信息,以及测试需求进行处理,生成对应的接口。
113.需要说明的是,所述接口是指用于数据传递的测试通道。
114.相应的,基于上述示出测试数据管理具体实现过程的示意图,可如图8所示。
115.在本发明实施例中,不需要人工进行录入,通过对流量数据进行处理,确定用于生
成测试用例的请求表数据和用于生成接口的接口表数据;在接收到用户上传的测试用例生成指令时,基于请求表数据和测试需求生成测试用例。在接收到用户上传的接口生成指令时,基于请求表数据和测试需求生成接口。通过上述不仅能够提高编写接口测试用例和接口的效率,且能够提高接口测试的速度。
116.与上述本发明实施例示出的测试数据管理方法相对应,本发明实施例示出还对应公开一种测试数据管理装置,如图9所示,为本发明实施例示出一种测试数据管理装置的结构示意图,该装置包括:
117.流量收集模块901,用于获取测试环境的流量数据。
118.处理模块902,用于对所述流量数据进行处理,确定用于生成测试用例的请求表数据。
119.数据转用例模块903,用于在接收到用户上传的测试用例生成指令时,基于所述请求表数据和测试需求生成测试用例。
120.需要说明的是,上述本发明实施例公开的测试数据管理装置中的各个单元具体的原理和执行过程,与上述本发明实施示出的测试数据管理方法相同,可参见上述本发明实施例公开的测试数据管理方法中相应的部分,这里不再进行赘述。
121.在本发明实施例中,不需要人工进行录入,通过对流量数据进行处理,确定用于生成测试用例的请求表数据;在接收到用户上传的测试用例生成指令时,基于请求表数据和测试需求生成测试用例。通过上述不仅能够提高编写接口测试用例和接口的效率,且能够提高接口测试的速度。
122.可选的,基于上述本发明实施例示出的测试数据管理装置,所述对所述流量数据进行处理,确定用于生成测试用例的请求表数据的处理模块902,具体用于:
123.对所述流量数据进行过滤处理,得到过滤后的流量信息;
124.基于测试需求确定用于生成测试用例的请求表数据。
125.可选的,基于上述本发明实施例示出的测试数据管理装置,所述处理模块902,还用于对所述流量数据进行处理,确定用于生成接口的接口表数据。
126.所述对所述流量数据进行处理,确定用于生成接口的接口表数据的处理模块902,具体用于:
127.对所述流量数据进行过滤处理,得到过滤后的流量信息。
128.基于测试需求确定用于生成接口的接口表数据。
129.相应的,如图10所示,所述该装置还包括数据转接口模块904。
130.数据转接口模块904,用于在接收到用户上传的接口生成指令时,基于所述请求表数据和测试需求生成接口。
131.在本发明实施例中,不需要人工进行录入,通过对流量数据进行处理,确定用于生成测试用例的请求表数据和用于生成接口的接口表数据;在接收到用户上传的测试用例生成指令时,基于请求表数据和测试需求生成测试用例。在接收到用户上传的接口生成指令时,基于请求表数据和测试需求生成接口。通过上述不仅能够提高编写接口测试用例和接口的效率,且能够提高接口测试的速度。
132.基于上述本公开实施例公开的测试数据管理装置,上述各个模块可以通过一种由处理器和存储器构成的硬件设备实现。具体为上述各个模块作为程序单元存储于存储器
中,由处理器执行存储在存储器中的上述程序单元来实现测试数据处理。
133.其中,处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现镜像安全加固。
134.本公开实施例提供了一种计算机存储介质,存储介质包括存储文本处理程序,其中,程序被处理器执行时实现图1和图3所述的测试数据管理方法。
135.本公开实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行图1和图3公开的测试数据管理方法。
136.本公开实施例提供了一种电子设备,该电子设备可以是服务器、pc、pad、手机等。
137.该电子设备包括至少一个处理器,以及与处理器连接的至少一个存储器,以及总线。
138.处理器、存储器通过总线完成相互间的通信。处理器,用于执行存储器中存储的程序。
139.存储器,用于存储程序,该程序至少用于:获取测试环境的流量数据;对所述流量数据进行处理,确定用于生成测试用例的请求表数据;在接收到用户上传的测试用例生成指令时,基于所述请求表数据和测试需求生成测试用例。
140.本技术还提供了一种计算机程序产品,当在电子设备上执行时,适于执行初始化有如下方法步骤的程序:
141.获取测试环境的流量数据;对所述流量数据进行处理,确定用于生成测试用例的请求表数据;在接收到用户上传的测试用例生成指令时,基于所述请求表数据和测试需求生成测试用例。
142.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
143.在一个典型的配置中,设备包括一个或多个处理器(cpu)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
144.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
145.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
146.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
147.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
148.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1