基于mock服务返回数据的方法、系统和模拟测试方法
文献发布时间:2023-06-19 11:32:36
技术领域
本发明属于软件测试领域,具体涉及一种基于mock服务按预定规则返回数据的方法和系统以及据此进行模拟测试的方法,主要用于软件性能测试。
背景技术
在软件测试过程中,一方面,由于现有测试方法对于监测点所采集的真实数据的准确性依赖性较强,因此,需要测试人员对于监测点采集的真实数据进行准确性的校验,但是依照现有技术,测试人员对于监测点采集的真实数据,往往无法进行数据准确性的校验,这就导致现有的测试方法存在准确性不足的问题;另一方面,由于产品迭代速度快,而在产品快速迭代过程中,按照现有技术,测试人员需要全面覆盖所有预设好的测试场景,但是这往往也很难实现。
综上所述,在软件测试过程中,亟需一种可以减少测试人员对数据源的依赖程度,进而提高测试效率的技术。
发明内容
为了解决现有技术的上述问题,一方面,本发明提供一种基于mock 服务按预定规则返回数据的方法,其在不能或难以获得真实数据的情况下,可以获得与之相对应的模拟数据。
为了达到上述目的,本发明采用的主要技术方案包括:
一种基于mock服务按预定规则返回数据的方法,其包括如下步骤:
S3、MockServer提供的模拟数据生成接口接到请求后,获取url中的参数type,taskId,monitorId,通过type获取到指定的类型模板,通过 monitorId获取对应的监测点excel文件内容,根据请求次数每次获取模板中的下一行数据,如果到最后一行则从第一行开始一直循环,将数据写入到类型模板中作为接口响应数据返回。
借助上述方案,本发明的基于mock服务按预定规则返回数据的方法,其在不能或难以获得真实源数据的情况下,可以获得与之相对应的模拟数据,供使用。例如在测试中,有可能难以获得稳定的真实源数据,此时,则可以在不用真实数据源的前提下,只修改请求的url和对应的模拟数据模板文件即可进行相关数据的采集,被测系统中可以只关注本身的逻辑进行测试,减少环境依赖,尤其是可以减少测试人员对数据源的依赖,进而可以提高测试效率。
本发明一个实施例的基于mock服务按预定规则返回数据的方法,其步骤S3之前还包括步骤:
S1、在监测点后台配置模拟监测点,即MockServer提供的模拟数据生成接口,用于被测服务调用;
S2、设置任务的监测点及任务调度频率,用于后端调度服务按频率访问MockServer提供的模拟数据生成接口。
本发明一个实施例的基于mock服务按预定规则返回数据的方法,其步骤S3之后还包括步骤:
S4、调度服务收到模拟监测点返回的数据后,存入数据库,并将处理后的数据提供给前端使用。
本发明一个实施例的基于mock服务按预定规则返回数据的方法,其步骤S1之前还包括步骤:S0、预先设计好测试场景。
本发明一个实施例的基于mock服务按预定规则返回数据的方法,其步骤S4之后还包括步骤:S5、根据模拟数据进行数据准确性测试。
另一方面,本发明还提供一种基于mock服务按预定规则返回数据的系统,其在不能或难以获得真实数据的情况下,可以获得与之相对应的模拟数据。
为了达到上述目的,本发明采用的主要技术方案包括:
一种基于mock服务按预定规则返回数据的系统,其包括:
模拟数据接口生成模块,用于生成模拟数据接口;
返回数据生成模块,用于生成返回数据。
借助上述方案,本发明的基于mock服务按预定规则返回数据的系统,其在不能或难以获得真实源数据的情况下,可以获得与之相对应的模拟数据,供使用。例如在测试中,有可能难以获得稳定的真实源数据,此时,则可以在不用真实数据源的前提下,只修改请求的url和对应的模拟数据模板文件即可进行相关数据的采集,被测系统中可以只关注本身的逻辑进行测试,减少环境依赖,尤其是可以减少测试人员对数据源的依赖,进而可以提高测试效率。
本发明一个实施例的基于mock服务按预定规则返回数据的系统,其返回数据生成模块包括:参数获取子模块,用于获取url中的参数 type,taskId,monitorId。
本发明一个实施例的基于mock服务按预定规则返回数据的系统,其返回数据生成模块包括:文件解析子模块,用于解析接口xls描述文件。
本发明一个实施例的基于mock服务按预定规则返回数据的系统,其还包括:模拟数据接口调度模块,用于调用模拟数据接口。
本发明一个实施例的基于mock服务按预定规则返回数据的系统,其还包括:模拟监测点配置模块,用于配置模拟监测点。
本发明一个实施例的基于mock服务按预定规则返回数据的系统,其还包括:任务设置模块,用于设置任务的监测点和任务调度频率。
另一方面,本发明还提供一种基于mock服务进行模拟测试的方法,其可以只关注被测系统本身的逻辑,减少环境依赖,尤其是可以减少测试人员对数据源的依赖,进而可以提高测试效率。
为了达到上述目的,本发明采用的主要技术方案包括:
一种基于mock服务进行模拟测试的方法,其在服务器上启动一个 http端口,用来接收被测服务的数据,根据被测服务上传的参数动态获取本地中存储的相关文件,根据预定规则将文件内容转换生成对应接口的返回数据,返回给被测服务,再依据返回数据进行测试。
借助上述方案,本发明的基于mock服务进行模拟测试的方法,其可以在不用真实数据源的前提下,只修改请求的url和对应的模拟数据模板文件即可进行相关数据的采集,被测系统中可以只关注本身的逻辑进行测试,减少环境依赖,尤其是可以减少测试人员对数据源的依赖,进而可以提高测试效率。
本发明一个实施例的基于mock服务进行模拟测试的方法,其中,获取url中的参数type,taskId,monitorId,通过type获取到指定类型的模板,通过monitorId获取对应的监测点excel文件内容,根据请求次数每次获取模板中的下一行数据,如果到最后一行则从第一行开始一直循环,将数据写入到类型模板中作为接口响应数据返回。
本发明一个实施例的基于mock服务进行模拟测试的方法,其包括如下步骤:
S3、MockServer提供的模拟数据生成接口接到请求后,获取url中的参数type,taskId,monitorId,通过type获取到指定的类型模板,通过 monitorId获取对应的监测点excel文件内容,根据请求次数每次获取模板中的下一行数据,如果到最后一行则从第一行开始一直循环,将数据写入到类型模板中作为接口响应数据返回。
附图说明
图1为本发明一个实施例的基于mock服务按预定规则返回数据的方法的主要流程示意图;
图2为本发明又一个实施例的基于mock服务按预定规则返回数据的方法的主要流程示意图;
图3为本发明又一个实施例的基于mock服务按预定规则返回数据的方法的主要流程示意图;
图4为本发明又一个实施例的基于mock服务按预定规则返回数据的方法的主要流程示意图;
图5为本发明一个实施例的基于mock服务按预定规则返回数据的系统的结构示意图;
图6为本发明一个应用例中的类型模板文件示意图;
图7为本发明一个应用例中的excel文件内容示意图(图6中的第一个类型模板文件,文件名称为“51.xlsx”);
图8为本发明一个应用例中的报文模板内容示意图(图6中的第六个类型模板文件,文件名称为“http.txt”);
图9为图8应用例中的excel参数文件内容示意图。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
参见图1,本发明一个实施例的基于mock服务按预定规则返回数据的方法,其包括如下步骤:
S3、MockServer提供的模拟数据生成接口接到请求后,获取url中的参数type,taskId,monitorId,通过type获取到指定的类型模板,通过 monitorId获取对应的监测点excel文件内容,根据请求次数每次获取模板中的下一行数据,如果到最后一行则从第一行开始一直循环,将数据写入到类型模板中作为接口响应数据返回。
借助上述方案,本发明的基于mock服务按预定规则返回数据的方法,其可以在不能或难以获得真实源数据的情况下,可以只修改请求的url和对应的模拟数据模板文件即可进行相关数据的采集,获得与之相对应的模拟数据,达到了可以不用真实数据源的前提下,提供稳定的测试数据供使用。
参见图2,本发明一个较佳实施例的基于mock服务按预定规则返回数据的方法,其包括如下步骤:
S1、在监测点后台配置模拟监测点,即MockServer提供的模拟数据生成接口,用于被测服务调用;
S2、设置任务的监测点及任务调度频率,用于后端调度服务按频率访问MockServer提供的模拟数据生成接口;
S3、MockServer提供的模拟数据生成接口接到请求后,获取url中的参数type,taskId,monitorId,通过type获取到指定的类型模板,通过 monitorId获取对应的监测点excel文件内容,根据请求次数每次获取模板中的下一行数据,如果到最后一行则从第一行开始一直循环,将数据写入到类型模板中作为接口响应数据返回。
参见图3,本发明一个实施例的基于mock服务按预定规则返回数据的方法,其包括如下步骤:
S0、预先设计好测试场景;
S1、在监测点后台配置模拟监测点,即MockServer提供的模拟数据生成接口,用于被测服务调用;
S2、设置任务的监测点及任务调度频率,用于后端调度服务按频率访问MockServer提供的模拟数据生成接口;
S3、MockServer提供的模拟数据生成接口接到请求后,获取url中的参数type,taskId,monitorId,通过type获取到指定的类型模板,通过 monitorId获取对应的监测点excel文件内容,根据请求次数每次获取模板中的下一行数据,如果到最后一行则从第一行开始一直循环,将数据写入到类型模板中作为接口响应数据返回;
S4、调度服务收到模拟监测点返回的数据后,存入数据库,并将处理后的数据提供给前端使用。
借此,测试人员可以根据模拟数据进行数据准确性测试,同时可以保证每次迭代测试过程中预先设计好的测试场景都被覆盖,很大程度的提高了测试效率。
参见图4,本发明一个实施例的基于mock服务按预定规则返回数据的方法,其包括如下步骤:
在前端页面监测点后台配置模拟监测点,即MockServer提供的模拟数据生成接口;
任务选择模拟监测点;
调度服务按任务指定频率调度,调用MockServer提供的模拟数据生成接口;
MockServer应用根据任务调度提供模拟数据生成接口,解析模拟数据生成接口xls描述文件(即excel文件),生成mock数据(即模拟数据)并返回;
调度服务按任务指定频率调度,获取模拟监测点返回的mock数据。
上述任一实施例中,指定的类型模板可以是图6所示的类型模板。
上述任一个实施例中,监测点excel文件可以是图7所示的excel文件。
如图5所示,本发明还提供一个实施例的基于mock服务按预定规则返回数据的系统,其包括:
模拟数据接口生成模块,用于生成模拟数据接口;
返回数据生成模块,用于生成返回数据。
其中,较佳的,其返回数据生成模块包括:参数获取子模块,用于获取url中的参数type,taskId,monitorId。
其中,较佳的,其返回数据生成模块包括:文件解析子模块,用于解析接口xls描述文件。
较佳的,其还包括:模拟数据接口调度模块,用于调用模拟数据接口。
较佳的,其还包括:模拟监测点配置模块,用于配置模拟监测点。
较佳的,其还包括:任务设置模块,用于设置任务的监测点和任务调度频率。
参见图8和图9,本发明一个模拟http数据的应用例,具体实施方式如下:
1、预先设计好测试场景:
1).新建一个http类型任务,任务id为708620;
2).设计http类型请求报文模板,如下:
{“task_id”:”708620”,”host”:”www.taobao.com”,”database”:null,”table”:null,”database_code”:null,”table_info”:null,”packets”:”0”,”task_type”:”http”,”retry”:”1”,”time_out”:n ull,”uid”:”284415”,”ts”:”1550719304”,”ed”:”enterprise”, ”need_file”:true,”used_monitor_id”:51};
3).设计http类型返回值模板,http.txt。
2、在监测点后台配置模拟监测点,即MockServer提供的模拟数据生成接口,用于被测服务调用:
在监测点后台将51监测点地址设置为:
http://localhost:9999/monitor/http/708620/51。
3、设置任务的监测点及任务调度频率,用于后端调度服务按频率访问:
1).在前端将任务:708620的监测点设置为51;
2).将任务调度频率设置为2分钟。
4、MockServer提供的模拟数据生成接口接到请求后,获取url中的参数type,taskId,monitorId,通过type获取到指定的类型模板,通过 monitorId获取对应的监测点excel文件内容,根据请求次数每次获取模板中的下一行数据,如果到最后一行则从第一行开始一直循环,将数据写入到类型模板中作为接口响应数据返回:
1).后端调度服务请求:
http://10.0.1.24:9000/monitor/http/708620/51;
2).根据task_type=http找到报文模板,模板内容参见图8;
3).根据task_id=708620找到参数文件51.xlsx,文件内容参见图9;
4).循环读取工作表中的每行数据,将http类型模板中的resp_result,resp_status,resp_time替换成excel中的数据,并作为接口响应返回;
5).返回http模板替换后的内容,将模板中的resp_result, resp_status,resp_time替换成参数文件中的数据返回,返回的数据内容如下:
①.第一次请求返回:{"resp_result":"1","resp_status":"200 OK","resp_time":221.569,"resp_err":"0","extend":{"url":"http:\/\/120.26. 48.181\/product\/","content_type":"text\/html;
charset=utf-8","http_code":200,"header_size":330,"request_size":323,"fil etime":-1,"ssl_verify_result":0,"redirect_count":0,"total_time":221.569,"n amelookup_time":0.012,"connect_time":37.245,"pretransfer_time":37.28 6,"size_upload":0,"size_download":8387,"speed_download":37844,"spee d_upload":0,"download_content_length":-1,"upload_content_length":-1,"starttransfer_time":186.574,"redirect_time":0,"certinfo":[],"primary_ip":"120.26.48.181","primary_port":80,"local_ip":"192.168.1.7","local_port":49177,"redirect_url":"","http_code_desc":"OK","req_headers":[],"req_method":"GET","req_httpv":"1.1","ip":"120.26.48.181","resp_httpv":"1.1"," resp_headers":{"Date":"Tue,03Jul 2018 17:37:40 GMT","Server":"Apache\/2.2.21(Win32) PHP\/5.3.10","X-Powered-By":"ThinkPHP","Expires":"Thu,19Nov 1981 08:52:00
GMT","Cache-Control":"private","Pragma":"no-cache","Transfer-Encoding":"chunked","Content-Type":"text\/html;
charset=utf-8","Set-Cookie":"PHPSESSID=6d8ls1ej362onm0d0ls9m827l 0;path=\/"}}}
②第二次请求返回:{"resp_result":"1","resp_status":"200 OK","resp_time":224.449,"resp_err":"0","extend":{"url":"http:\/\/120.26. 48.181\/product\/","content_type":"text\/html;
charset=utf-8","http_code":200,"header_size":330,"request_size":323,"fil etime":-1,"ssl_verify_result":0,"redirect_count":0,"total_time":221.569,"n amelookup_time":0.012,"connect_time":37.245,"pretransfer_time":37.28 6,"size_upload":0,"size_download":8387,"speed_download":37844,"spee d_upload":0,"download_content_length":-1,"upload_content_length":-1,"starttransfer_time":186.574,"redirect_time":0,"certinfo":[],"primary_ip":"120.26.48.181","primary_port":80,"local_ip":"192.168.1.7","local_port":49177,"redirect_url":"","http_code_desc":"OK","req_headers":[],"req_method":"GET","req_httpv":"1.1","ip":"120.26.48.181","resp_httpv":"1.1"," resp_headers":{"Date":"Tue,03Jul 2018 17:37:40 GMT","Server":"Apache\/2.2.21(Win32) PHP\/5.3.10","X-Powered-By":"ThinkPHP","Expires":"Thu,19Nov 1981 08:52:00
GMT","Cache-Control":"private","Pragma":"no-cache","Transfer-Encoding":"chunked","Content-Type":"text\/html;
charset=utf-8","Set-Cookie":"PHPSESSID=6d8ls1ej362onm0d0ls9m827l 0;path=\/"}}}。
5、调度服务收到模拟监测点返回的数据后,存入数据库,并将处理后的数据提供给前端使用:
1).前端查看任务id为708620的数据;
2).第一次调度的数据展示为:任务状态【正常】,响应时间【221.569ms】,任务状态码【200】;
3).第二次调度的数据展示为:任务状态【正常】,响应时间
【224.449ms】,任务状态码【200】。
本发明在模拟ping数据/ftp数据的应用中,与上述模拟http数据流程相同,此处不再赘述。
综上所述,本发明的基于mock服务按预定规则返回数据的方法和系统,可以通过在服务器上启动一个http端口,用来接收被测服务的数据,根据被测服务上传的参数动态获取本地中存储的相关文件,根据预定规则将文件内容转换生成对应接口的返回数据,返回给被测服务,使得不需要真实的监测点也能进行测试。其中,可以通过获取url中的参数type,taskId,monitorId,通过type获取到指定的类型的模板,通过 monitorId获取对应的监测点excel文件内容,根据请求次数每次获取模板中的下一行数据,如果到最后一行则从第一行开始一直循环,将数据写入到类型模板中作为接口响应数据返回。借此,通过实际的测试验证,本发明可以不用真实数据源的前提,只修改请求的url和对应的模拟数据模板文件即可进行相关数据的采集,使得被测系统既稳固了测试场景又稳固了测试数据,使得被测系统中可以只关注本身的逻辑进行测试,减少了环境依赖,解决了测试人员对数据源的依赖,大大的保障了测试的质量,提高了测试效率。
- 基于mock服务返回数据的方法、系统和模拟测试方法
- 一种基于MOCK平台的模拟第三方数据源测试方法