并发设计场景实例分享

744 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情


1.账户资金场景

账户资金场景用于将账户展示给用户看。账户信息包括余额、交易流水,提供交易支付服务。

其中金额、流水分多种类型,测试人员需要根据账户体系的组成,先简单地画出需测试的数 据库对象,如图所示。

image.png

当确定了测试对象后,测试人员需要掌握测试对象中的名字含义,即接口中参数的含义及相 互的逻辑关系,并且明确测试对象的操作行为以及规则的含义。

用户账户资金类名词:总资金、可用资金、冻结资金、锁定资金、在途资金。

总资金=可用资金+冻结资金+锁定资金。

冻结资金:在竞价保证金、法院冻结、押金场景会将资金冻结。 锁定资金场景:申请提现锁定。

在途资金场景:银行卡充值代扣成功,暂未到账。

交易流水类名词:用户流水、可用资金流水、冻结资金流水、在途及销账资金流水。 用户流水:用户充值、提现、交易流水。

可用资金流水:记录可用资金发生的变化,如充值、提现、交易。 冻结资金流水:记录冻结资金发生的变化。

在途及销账资金流水:记录在途资金发生的变化,如实时充值、银行隔日兑付。

交易类型:实时支付、挂账支付、组合实时支付。每种支付方式,若实时接口网络颠簸出现 异常值,都以查询回调交易信息为准。

直接支付:账户A划款至账户B,实时反馈支付成功、支付失败结果,异步再次反馈支付 结果。

挂账支付:增加一个划款任务,账户A划款至账户B,实时反馈接受成功、失败,异步反馈 支付成功、支付失败。

组合实时支付:一组实时支付指令,任意账户中出现余额不足,这组交易都将回退。 交易风控规则如下。

1.单笔最大交易额设置。

2.每日累计交易额度设置。

3.提现规则控制:在途资金,当日充值金额。 4.大额交易时间设置。

日结、实时对账,资金不平的账户立即封存,等待处理完成再解封。 日结:每个账户每日分别计算各类资金期初余额。

总资金=可用资金+冻结资金+锁定资金

期末金额—期初金额=对账交易流水的汇总

2.整理业务场景

当完成基本的测试需求分析后,测试人员需要将测试需求点按照测试思想重新组装,形成独 立的测试场景,这个过程也可以被称为分拆合成再分拆优化的过程。

入金相关充值场景如图所示。

image.png

(1)通道代扣入金:由本人授权第三方支付机构、银行,根据本人的确认充值金额,从绑定 的银行卡账户直接扣款。

(2)支付机构余额入金:根据本人的确认交易金额,从第三方支付机构余额扣款。

(3)银行卡转账:由本人通过网银、银行柜面、ATM机,发起向企业转账,转入电商平台指 定账号。

(4)第三方支付机构与资金系统,对实际到账资金进行核销。

交易场景如图所示。

image.png

(1)直接支付、组合支付:实时支付并反馈结果。

(2)当网络颠簸收到异常信息时,不能判定为支付失败。需要等待异步支付通知,或主动查 询支付结果。挂账支付:资金系统实时反馈接受结果。待账户资金足够后,按序支付并进行异步 通知。

3.测试方案设计、分配计划

最后,测试人员可以根据测试需求分析以及场景构建结果,参考项目组分工开发模式,设计 测试方案以及测试计划。

举例如下。

第一轮测试,以接口文档驱动测试,测试步骤及要点如下。

(1)编写接口测试代码,核对每个接口传入参数控制:长度限制、格式、必填限制、正常值 范围限制等。同时,确认报错提示信息是否准确、到位。

(2)异常账户数据测试,将账户冻结、交易金额置为负数、数据库锁表、网络断开等情况, 对入金、交易类接口测试,检查数据是否出现异常。

(3)逐个接口进行并发事务测试,检查账户金额、用户流水、对账流水数据。核对账户收支 金额、流水是否与用例调用结果一致。

(4)复合接口并发测试,将各种方式充值、交易类型的接口按照一定的顺序进行并发。同样核对账户收支金额、流水是否与用例结果一致。

第二轮测试,以业务场景驱动测试,测试步骤及要点如下。 1.同一动作并发:相同订单并发支付、并发退款。

2.电商平台混合交易场景:秒杀抢购、集中退货、到货确认。

3.绕过页面操作,通过抓包、POST工具,抛送异常值进行交易测试。