本发明涉及订单系统测试领域,特别是一种生产环境下订单号管理测试数据的方法及系统。
背景技术:
1、在支付订单系统中,新的功能在发布到生产环境之前,需要进行功能测试和压力测试,以发现系统问题并评估系统性能,除了在测试环境中进行功能测试外,还需要在灰度环境中进行功能测试。
2、然而,由于支付渠道方配置的支付通知地址是固定的生产环境地址,支付通知无法到达灰度环境,导致无法测试灰度环境中的支付通知功能;另一个问题是在生产环境中进行压力测试时会产生大量测试数据,这些测试数据混杂在正式用户数据中,从而污染了整个数据池,这些数据通常被称为脏数据。
技术实现思路
1、为克服现有技术中支付通知无法到达灰度环境,导致无法测试灰度环境中的支付通知功能,以及在生产环境中进行压力测试时会产生大量测试数据,而导致数据污染的问题,本发明的目的是提供一种生产环境下订单号管理测试数据的方法及系统,能够在灰度环境中测试支付通知功能,并且在压力测试时能够避免数据污染。
2、本发明采用以下方案实现:
3、一种生产环境下订单号管理测试数据的方法,所述方法步骤如下:
4、步骤1:当订单创建接口接收到下单请求时,获取当前程序所处的环境,并进行环境标识标记;检查请求头中是否存在压测标识,根据测压表示存在的情况进行压测标识标记;最后,将环境标识、压测标识与订单序列号拼接;
5、步骤2:根据存在的压测标识,将订单数据存入相应的数据库,存在压测标识则存入压测数据库,否则存入正式数据库;
6、步骤3:当生产环境的支付通知地址收到用户的付款通知时,分割订单号得到一个数组,然后获取数组中环境标识的值,根据环境标识的值判断当前所处环境,根据所处环境确认支付通知地址的支付环境;
7、步骤4:获取数组中压测标识的值,根据压测标识的值和环境标识的值,发送发货消息至对应的消费队列中;
8、步骤5:创建不同的消费者进行测试。
9、进一步的,步骤1具体为:如果是生产环境,则将环境标识标记为1;如果是灰度环境,则将环境标识标记为0;检查请求头中是否存在压测标识"test-order",若存在则将压测标识标记为1,否则标记为0;最后,将环境标识和压测标识用'-'拼接在订单序列号的后面,拼接后的订单号规则为[订单序列号]-[环境标识]-[压测标识]。
10、进一步的,步骤3具体为:通过'-'分割订单号得到一个数组,然后获取数组位置为1的值,即环境标识的值,若环境标识为1,则表示当前环境为生产环境;若环境标识为0,则代表是灰度环境的订单数据,此时将当前支付通知地址转发到灰度环境的支付通知地址。
11、进一步的,步骤4具体为:获取数组中下标位置为2的值,即压测标识的值,若压测标识为0,则为正式数据,则连接正式数据库并更改订单状态为已付款;若压测标识为1,则为压测数据,则连接压测数据库并更改订单状态为已付款;若环境标识为0,表示灰度环境,则向灰度发货队列生产一条发货消息;若环境标识为1,表示正式环境,若压测标识为1则将发货消息生产到压测消费队列中,若压测标识为0则将发货消息生产到正式发货队列。
12、进一步的,步骤5具体为:创建三种消费者,包括生产环境消费者、灰度环境消费者和压测数据消费者,进行数据测试。
13、一种生产环境下订单号管理测试数据的系统,所述系统包括:标记模块、存储模块、支付通知地址选择模块、发货消息生产模块、测试模块;
14、所述标记模块用于当订单创建接口接收到下单请求时,获取当前程序所处的环境,并进行环境标识标记;检查请求头中是否存在压测标识,根据测压表示存在的情况进行压测标识标记;最后,将环境标识、压测标识与订单序列号拼接;
15、所述存储模块用于根据存在的压测标识,将订单数据存入相应的数据库,存在压测标识则存入压测数据库,否则存入正式数据库;
16、所述支付通知地址选择模块用于当生产环境的支付通知地址收到用户的付款通知时,分割订单号得到一个数组,然后获取数组中环境标识的值,根据环境标识的值判断当前所处环境,根据所处环境确认支付通知地址的支付环境;
17、所述发货消息生产模块用于获取数组中压测标识的值,根据压测标识的值和环境标识的值,发送发货消息至对应的消费队列中;
18、所述测试模块用于创建不同的消费者进行测试。
19、进一步的,标记模块具体为:如果是生产环境,则将环境标识标记为1;如果是灰度环境,则将环境标识标记为0;检查请求头中是否存在压测标识"test-order",若存在则将压测标识标记为1,否则标记为0;最后,将环境标识和压测标识用'-'拼接在订单序列号的后面,拼接后的订单号规则为[订单序列号]-[环境标识]-[压测标识]。
20、进一步的,支付通知地址选择模块具体为:通过'-'分割订单号得到一个数组,然后获取数组位置为1的值,即环境标识的值,若环境标识为1,则表示当前环境为生产环境;若环境标识为0,则代表是灰度环境的订单数据,此时将当前支付通知地址转发到灰度环境的支付通知地址。
21、进一步的,发货消息生产模块具体为:即压测标识的值,若压测标识为0,则为正式数据,则连接正式数据库并更改订单状态为已付款;若压测标识为1,则为压测数据,则连接压测数据库并更改订单状态为已付款;若环境标识为0,表示灰度环境,则向灰度发货队列生产一条发货消息;若环境标识为1,表示正式环境,若压测标识为1则将发货消息生产到压测消费队列中,若压测标识为0则将发货消息生产到正式发货队列。
22、进一步的,测试模块具体为:创建三种消费者,包括生产环境消费者、灰度环境消费者和压测数据消费者,进行数据测试。
23、本发明的有益效果在于:
24、本发明提供一种生产环境下订单号管理测试数据的方法及系统,通过在订单号中引入环境标识和压测标识,根据订单号实现了生产、灰度和压测环境的明确区分,确保订单处理、支付通知和发货操作在不同环境中独立进行,避免数据污染和环境干扰,提高了系统的灵活性、安全性和测试效率。
1.一种生产环境下订单号管理测试数据的方法,其特征在于,所述方法步骤如下:
2.根据权利要求1所述的一种生产环境下订单号管理测试数据的方法,其特征在于,步骤1具体为:如果是生产环境,则将环境标识标记为1;如果是灰度环境,则将环境标识标记为0;检查请求头中是否存在压测标识"test-order",若存在则将压测标识标记为1,否则标记为0;最后,将环境标识和压测标识用'-'拼接在订单序列号的后面,拼接后的订单号规则为[订单序列号]-[环境标识]-[压测标识]。
3.根据权利要求2所述的一种生产环境下订单号管理测试数据的方法,其特征在于,步骤3具体为:通过'-'分割订单号得到一个数组,然后获取数组位置为1的值,即环境标识的值,若环境标识为1,则表示当前环境为生产环境;若环境标识为0,则代表是灰度环境的订单数据,此时将当前支付通知地址转发到灰度环境的支付通知地址。
4.根据权利要求2所述的一种生产环境下订单号管理测试数据的方法,其特征在于,步骤4具体为:获取数组中下标位置为2的值,即压测标识的值,若压测标识为0,则为正式数据,则连接正式数据库并更改订单状态为已付款;若压测标识为1,则为压测数据,则连接压测数据库并更改订单状态为已付款;若环境标识为0,表示灰度环境,则向灰度发货队列生产一条发货消息;若环境标识为1,表示正式环境,若压测标识为1则将发货消息生产到压测消费队列中,若压测标识为0则将发货消息生产到正式发货队列。
5.根据权利要求1所述的一种生产环境下订单号管理测试数据的方法,其特征在于,步骤5具体为:创建三种消费者,包括生产环境消费者、灰度环境消费者和压测数据消费者,进行数据测试。
6.一种生产环境下订单号管理测试数据的系统,其特征在于,所述系统包括:标记模块、存储模块、支付通知地址选择模块、发货消息生产模块、测试模块;
7.根据权利要求6所述的一种生产环境下订单号管理测试数据的系统,其特征在于,标记模块具体为:如果是生产环境,则将环境标识标记为1;如果是灰度环境,则将环境标识标记为0;检查请求头中是否存在压测标识"test-order",若存在则将压测标识标记为1,否则标记为0;最后,将环境标识和压测标识用'-'拼接在订单序列号的后面,拼接后的订单号规则为[订单序列号]-[环境标识]-[压测标识]。
8.根据权利要求7所述的一种生产环境下订单号管理测试数据的系统,其特征在于,支付通知地址选择模块具体为:通过'-'分割订单号得到一个数组,然后获取数组位置为1的值,即环境标识的值,若环境标识为1,则表示当前环境为生产环境;若环境标识为0,则代表是灰度环境的订单数据,此时将当前支付通知地址转发到灰度环境的支付通知地址。
9.根据权利要求7所述的一种生产环境下订单号管理测试数据的系统,其特征在于,发货消息生产模块具体为:即压测标识的值,若压测标识为0,则为正式数据,则连接正式数据库并更改订单状态为已付款;若压测标识为1,则为压测数据,则连接压测数据库并更改订单状态为已付款;若环境标识为0,表示灰度环境,则向灰度发货队列生产一条发货消息;若环境标识为1,表示正式环境,若压测标识为1则将发货消息生产到压测消费队列中,若压测标识为0则将发货消息生产到正式发货队列。
10.根据权利要求6所述的一种生产环境下订单号管理测试数据的系统,其特征在于,测试模块具体为:创建三种消费者,包括生产环境消费者、灰度环境消费者和压测数据消费者,进行数据测试。