在用testsuite来集成testcase实现丰富的场景化的时候,因为testcase里面定义了参数缺失对接口返回的判断,所以,testsuite参数化实现笛卡尔积组合依次覆盖variables中定义的变量,正确的变量会对参数缺失、参数错误这些teststep产生影响,导致validate时会判断错误。
所以,这时候,要编写函数,跳过该用例的执行,因为testsuite传过来的参数无法对这种情况的变量进行覆盖处理。具体做法是,将接口参数以全局变量的形式在testcase中定义,teststep里面局部覆盖。涉及到参数缺失或参数错误,在teststep层面定义skip机制,判断传入的参数是否等于错误的参数值,相等则执行,不等则跳过。经过试验,定义的全局变量和局部变量名称相同(假设是var),即使定义了不同的变量名(假设是var1)在teststep里面引用(var: $var1),并且通过testsuite将var和var1同时传参到testcase,但是var1并没有对var进行赋值成功。
由上可知,参数缺失、参数错误这类场景的验证,需要在testcase层面执行得以验证,除非不做validate可以在testsuite层面验证,显然,不做validate是不符合测试用例的构成的;testsuite层面的场景化主要是基于用例的正确流程,并进行参数化数据驱动。
另外,将异常的testcase作为一个独立的用例文件,是更好的处理方式,更体现测试分层的理念。
使用心得:debugtalk.py里面编写函数,实现丰富的场景化
最新推荐文章于 2023-04-02 19:56:16 发布