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

eric-male · July 02, 2019 · Last by eric-male replied at July 04, 2019 · 1610 hits

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

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

在框架: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() 来控制测试用例的执行顺序的

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up