httprunner 接口测试用例分层 testcase 这一层是去调用 api 层的多个接口,就是组合多个 api 形成一个业务场景,并没有验证单个 api 针对不同的输入的测试情况。 但理解的接口测试应是根据不同的输入,验证输出结果是否符合预期。所以就很疑惑,如果把 testcase 这一层每个文件作为单个 api 不同输入的验证是否合理?这样 testsuite 这一层又用来做什么呢?
楼主可以拐个弯,既然一个 case 可以有多个 api ,那是否也可以只有 1 个 api ?单 api 针对不同输入,是否可以变为多个 case ,每个 case 只有一个 step ,即只调用一个 api ?
至于 testsuite ,代表测试套件,或者叫用例组。面向的场景是一次性要执行多个用例(比如要执行所有单接口用例)。
我觉得楼上的大佬说的对
接口用例可以分为两类 1、单接口验证,即 API 验证:不同输入验证不同响应结果 2、场景功能验证:把多个 API 串起来,跑完整功能,重点验证功能实现。 其中根据 API 入参的不同,相同流程的多个 API 串起来组成不同的场景功能。
总结一下: 第一种:testcase 就是针对的 “单步操作”;比如登陆->创建项目->绑定设备,这三个节点,每一个节点可能包含多个接口。单个接口的定义放在 api 层,组合多个 api 形成 testcase 层,每个 testcase 层都可以单独执行,testsuite 层调用 testcase 层的每一个 “单步操作” 组合成业务场景。
第二种:testcase 的每一个文件只包含单接口的测试,通过不同的输入验证单个接口的正确性;testsuite 层调用 testcase 层的每一个单接口文件,相当于执行所有单接口的用例;api 层仍是定义单个接口。
两种方式,看测试接口的方向是偏向业务场景还是只是针对单接口的验证。在项目时间要求紧,第一种方式应该投入产出比高一些,需要靠手工测试去弥补不同的输入情况验证;有较充分的人力,第二种方式可以对单接口做完整的验证,同时业务场景的验证也可以辅以第一种方式补充,第二种方式需要投入较多的时间。
第三种:testcase 针对业务场景,包含了登陆->创建项目->绑定设备三个节点,每一个节点可能包含多个接口,不同的 testcase 文件代表不同的业务场景。
你们用 httprunner 在实际项目中,是使用的哪种方式呢?
我们会更重业务场景,尽量用多的业务场景去覆盖接口
前两天升级至 3.1.3 版本之后,我遇到的问题是:例如一个接口 richhelp,当存在接口复用的情况下,入参跟出参不同的情况,我需要 extract 的值也不一样,在 2.X 版本,因为有 api 层的概念,所以我把接口文件封装之后再 extract,可以对接口的不同返回体进行不同命名,但是在 3.X 版本,只能有一个 export 输出的内容,且不能对该对象命名。因为在接口那边 extract 后,就只能是相同的名称。所以同名 api 文件几乎不能复用,难受~~~