接口测试 unittest 中,如何用测试套件 TestSuite 执行多个接口

eric-male · 2019年07月02日 · 最后由 eric-male 回复于 2019年07月04日 · 130 次阅读

接口自动化中,有几类接口,拿电商项目为例:
一类接口:商品分类接口,清空购物车接口,添加地址接口,修改地址接口;
另一类接口:提交订单接口,确认收货接口,换货,退货;

执行的时候,向第一类接口,用户操作的比较少;
第二类接口时刻在用,和主体业务息息相关,这类接口用户操作的比较多;

在框架:python+unittest+requests+HTMLTestRunner 如何,执行呢?
一个项目里面,接口有上百个,难道,真的要放到 同一个 TestSuite 中,一键执行吗?


正在从普通接口测试,往自动化接口测试这边过度

共收到 8 条回复 时间 点赞

多分几个接口类,可以按业务和优先级分

我把这些接口,按照业务写在十几个类中;
最终,都是放到同一个测试套件 TestSuite 中 ;

优先级?先执行与主题业务关联小,用户操作比较少的接口吗?
如:商品分类接口,清空购物车接口,添加地址接口
之后,执行用户操作的比较多的接口
如:提交订单接口,确认收货接口,换货,退货
是这样吗?

eric-male 回复

优先级一般是按照接口调用的顺序和次数来确定的,调用入口和次数多的都是优先级高的,先保证执行优先级高的接口,再往优先级低的接口走。

是的,调用顺序是看在 TestSuite 容器中,添加 TestCase 的顺序;
我写的也是这样,把重要的接口放在最上面,不重要的接口放在下面,把这些接口从上到下,依次排列开来;
就是因为这样,接口非常多,很多接口涉及到的业务比较紧密,无法管理;

请问,您是如何对调用入口和次数多的接口管理的呢?🙏 🙏

TestSuite 执行测试用例并不是从上到下的顺序,默认是随机的,所以你这把重要的接口放在最上面,不重要的接口放在最下面并没有什么用;可以多用几个 TestCase 类管理,然后在 TestSuite 用自定义的方式调用。你可以看下 TestSuite 的源码,了解执行过程。

可以参考 httprunner 的思路,将测试数据,接口数据抽离出来,相同业务流程的在一个 testcase 中,动态创建多个 test 方法来执行接口

lcw 回复

您说的是数据驱动测试吧,我需要先把这个写好了,后期在改写成数据驱动测试

TestSuite 是根据 ASCII 码的顺序加载测试用例的,TestSuite 源码之前我看过没有了解透,
我是通过 unittest.TestSuite().addTest() 来控制测试用例的执行顺序的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册