接口验证模式-2

上一篇 / 下一篇  2012-07-18 09:20:59 / 个人分类:杂谈

 ● S 模式:被测对象作为服务端接收请求,一般来说,流程终点的接口(例子中的M 部件)多数为S模式。

51Testing软件测试网r\#g kn T2O;c

  基本验证要求:51Testing软件测试网J` m1HW(z0o

  ◇ 收到的请求消息参数合法性校验。包括:

x*\ X2Zksd+|-? _0

  ——协议、消息格式的验证、非系统识别消息、存在非法字段、收到重复消息

1`s qxyN"F0

  ——遍历各字段进行参数合法性校验:是否可选、唯一性、类型、取值范围、长度(<、=、>)等51Testing软件测试网/H~#r*y(K

  ◇ 遍历请求消息的各字段取值及组合,确认根据不同输入返回了不同的结果(可以等价)51Testing软件测试网 Ag!NO"qREr

  ◇ 发出响应消息正确性:协议、消息格式、各参数验证等。

;g7|HG };E0

  S&C 模式:被测对象既作为服务端接收请求又作为服务端发送请求。一般来说,流程中点(例子是的E 部件)多数为S&C 模式。

X6B3` iq(xQ,F(p(r/a0

  如果将周边部件1 作为被测对象一部分,它即是C51Testing软件测试网M1}@? eS;xA

  如果将周边部件2 作为被测对象一部分,它即是S

_U:O)WM.I/w0

51Testing软件测试网.@ _|x1m4SRJ

  基本验证要求:除了C 模式和S 模式的基本验证要求,考虑对不同消息间相关参数一性性进行校验。

^ Kb&F.\9U0

  例:R1 接口中X 参数取值为1-255,经过转换后的R2 接口中相应的X 参数取值也应为1-255。51Testing软件测试网 p!bxF1E8j^

  进一步验证要求:参见C 模式和S 模式中的进一步验证要求。51Testing软件测试网 V)M1F\Q%@gtA4bR

  3.2 复合模式

O O$`8u:X'zHUT't0

  ● 异步模式:被测对象发出消息后,对端立即响应,对端在处理结束后再发送回执消息给部件,部件根据对端所给出的消息作出相应的处理,流程结束。一般来说,如果对端处理较为复杂、为避免被测对象长时间被阻塞,会采用此通信方式。51Testing软件测试网9zw~\1U Ah4~eaJ

51Testing软件测试网G2r*\[{(h.l][\

  对于异步模式,可以拆分为2 对消息,但这2 对消息是基于事务、有状态的。因此,对这类消息的验证除了基本模式C 和S 的验证要求外,还需要考虑2 对消息关系的配合对被测对象的状态影响验证。51Testing软件测试网M,xw?NTD\^

  以图示为例,被测对象的验证内容包括:51Testing软件测试网3ZZ;cYMrh(C i

  ◇ 对A 接口的验证。参见C 模式

s;S6_(|\0

  ◇ 对B 接口的验证。参见S 模式

`i_0d3R?0

  ◇ A 和B 接口的配合:

+](?N2t.B:rE"}0

  条件:A 接口处理失败、未收到B 接口消息、B 接口处理失败、B 接口处理成功

A{$qG ZQt0

  结果:被测对象的状态、数据

%^!IP VoFGA xx0
w\)]Y.S4p1s0

[(M5w+p3v0  ● 分发模式:需要将消息采用同步方式向其它多个部件进行分发,待消息收齐后才能决定自身的最终状态。例: 被测对象通过分发部件将数据同步分发给不同的部件。需要说明的是:图示中的分发部件,这时从物理上来说,可能看到的只是一个部件,由它统一接受和分发消 息,但从逻辑上来说,它是代表了不同部件的接口处理的。51Testing软件测试网(fl5{sv3HG

51Testing软件测试网i]kO&S&s q(C

  对于分发模式一般也是基于事务、有状态的,但由于涉及到了2 个以上的周边部件,还需要考虑对不同部件的接口消息处理结果进行结合。51Testing软件测试网x&\waC Tf5n

  以图示为例,被测对象的验证内容一般包括:

Z&CLsp\G5c,I&Bd0

  ◇ 对A 接口的验证。(参见C 模式)

dA$y:m R/Ei)z2Z0

  ◇ 对B 接口的验证。(参见C 模式)51Testing软件测试网? S$Q w&EB X

  ◇ 对部件1 和部件2 处理结果结合验证:

"|g |!?xJ2M[0

  条件:1 成功2 成功;1 成功2 失败;1 失败2 成功;1 失败2 失败51Testing软件测试网d_!v*b/E|

  结果:被测对象的状态、数据

&@rtc%U BHa0

  ● 异步分发模式:即采用异步方式进行消息分发,为异步和分发模式的结合。比较 典型的是数据同步异步接口。被测对象 通过分发部件 同时将数据同步消息通知分发给不同的部件,各个不同部件收到通知后再向被测对象请求获取同步数据。如果通知有优先级,例:部件1> 部件2,待部件1 处理完再通知部件2,即为异步分发模式1。如果多个部件的分发并行执行(一般来说,部件1 和部件2 可能代表的是同类部件的不同物理实例),即为异步分发模式2。51Testing软件测试网4T3^$H1tt#G/oO

W R~D O9C:D*q0

"O8C(nxV*S KZ051Testing软件测试网(LIW7I4P!|,z

  对于异步分发模式,也即异步+分发模式的组合。此时被测对象涉及到2 种类型的消息配合:同一个部件的通知和回执的组合;不同部件间的消息处理结果的配合。由此,被测对象的状态迁移会更为复杂些。

wa7o7zsM7DNGqV0

M9HK D#d7A6xy0  以图示为例,被测对象的验证内容包括:51Testing软件测试网+e3`(A^ s\)P

51Testing软件测试网0p3j#jo(o T

  ◇ 对A 接口的验证。(参见C 模式)

g;M{Q2]O$~"T0

;b(MG@$F9^#m0  ◇ 对B 接口的验证。(参见S 模式)51Testing软件测试网}y8UN:d |:_

V}A/Z ]V7K,M"R-p7C0  ◇ 对C 接口的验证。(参见C 模式)

_$C4^~)e3Un:Q;H0

_J/C8|e;HGx0  ◇ 对D 接口的验证。(参见D 模式)51Testing软件测试网,f9t s7O,b%e

[CHm.P [:eb0  ◇ 对A 和B 接口的配合验证。(参见异步模式)51Testing软件测试网%Cq L&_k7n,` v#Z

Q3]?LE_0  ◇ 对C 和D 接口的配合验证。(参见异步模式)

*Y5wtX)L3[8U}051Testing软件测试网 l%m0qu+B L/Be#n

  ◇ 对部件1 和部件2 处理结果组合验证。(参见分发模式)

@&q{@:|051Testing软件测试网#s2YS6MA!H

  4、相关说明51Testing软件测试网&Gl*W/b%_(`

51Testing软件测试网'`q9^8T7TW-M

  ● 参数合法性检验策略51Testing软件测试网8W4V NI:})k!S,N

#Y;M[+m~{c0  如果业务流程涉及多次转发,原则上由逻辑处理部件进行接口参数的强校验;其它转发部件(例:E部件)进行弱校验。51Testing软件测试网6D[8c G7z;I'O

51Testing软件测试网&l aQ h(~ bCVx

  消息序列验证

RC(dn3]0

1F E e;hi)P3Xy\:W0  如果不同的接口消息之间是基于事务、有状态的,则还需要考虑消息序列异常的问题,无论是何种模式。其验证点包括:消息乱序、少传消息包、多传消息包、传重复消息包、事务超时后收到消息等。51Testing软件测试网hro&p:v%Sy

#Vctw1Z{,RVv4A0  接口可靠性保证51Testing软件测试网WQ)w#Uf$p!^

oj h CmD0  ◇ 对于重发的验证,一般来说,重发机制中需要有重发策略、重发次数方面的考虑,不能出现消息反复重发引发消息风暴的问题。

B!J%cnuU9j051Testing软件测试网j3_u L O E4Xx"V V5[

  ◇ 对于超时的验证,需要考虑各部件超时配置不一致的问题。

w4}*p6l:yf051Testing软件测试网!o7HEJjJ)d

  ◇ 对于处理失败造成双方数据不一致问题,需要有事务号、回滚或补偿机制等方面的设计考虑。

2l]Lc4~!X051Testing软件测试网O.dM%f#MK

  ● 接口验证的不同阶段51Testing软件测试网0?$T1xVHg

51Testing软件测试网:lAZxR8?9R

  对于接口验证在单部件测试、点-点接口联调、E2E联合测试等不同阶段都有所涉及。一般来说:51Testing软件测试网/P ug*_,X:v6p }`2M

C)m'n,y)I%X/[ BNg0nk0  单部件测试:理论上通过测试桩可以模拟对端各种情况,对于真实实体只能通过系统状态预置、输入数据从外部触发。所以,能在单部件测试考虑的尽可能放到单部件去做,至少保证单部件自身是OK的。

/}V:hP2H&\)T0m051Testing软件测试网d:T-V$^qo#d`^z J

  点-点接口联调:如果将2个部件看作一个整体的话,则相当于单部件测试。对于部件-部件间的接口无法通过测试桩来模拟,需要通过外部驱动输入。另外还需要关注部件-部件间的网络连接,包括:是否可正常建立连接、连接中断后是否会重连、连接吊死与释放、时断时续等。51Testing软件测试网 M7J,m|+p

w:``,i?r Pm_^0  E2E联合测试:所有内部部件均为真实实体,对于接口间配合的问题(例:事务或数据一致性问题)可以考虑放到此考虑。除此还需要关注与外部部件间的接口对接测试。

9l1tIEH-`2H0

TAG:

 

评分:0

我来说两句

Open Toolbar