一般进行接口测试时,每个接口的传参都不止一种情况,一般会考虑正向、逆向等多种组合。所以在测试一个接口时通常会编写多条case,而这些case除了传参不同外,其实并没什么区别。

这个时候就可以利用ddt来管理测试数据,提高代码复用率。

先看一个简单的demo

  1. # coding: utf-8
  2. # author: Archer
  3.  
  4. import unittest
  5. import ddt
  6. import requests
  7. import HTMLTestRunner
  8.  
  9. # 接口参数,用列表[]包裹起来,每组数据则是字典格式
  10. test_data = [{
  11. "clientCode": "韩",
  12. "topic": "测试接口",
  13. "content": "测试接口",
  14. "resrcType": "",
  15. "assert": "" # assert并不是接口需要的参数,是为了对返回结果进行断言而加在这里的预期结果
  16. },
  17. {
  18. "clientCode": "",
  19. "topic": "测试接口2",
  20. "content": "测试接口2",
  21. "resrcType": "",
  22. "assert": ""
  23. },
  24. {
  25. "clientCode": "韩",
  26. "topic": "",
  27. "content": "测试接口2",
  28. "resrcType": "",
  29. "assert": "4"
  30. }]
  31.  
  32. @ddt.ddt
  33. class Test(unittest.TestCase):
  34. def setUp(self):
  35. self.url = 'http://192.168.X.XXX:7001/XXX/api/XXXise/info/XXX/save.v'
  36.  
  37. @ddt.data(*test_data)
  38. def test_ddt(self, value): # 定义一个变量value来接收ddt.data中的数据
  39. r = requests.post(self.url, value)
  40. print(r.json())
  41. self.assertTrue(value['assert'] in r.text) # 利用参数组合中的assert参数进行断言
  42.  
  43. if __name__ == '__main__':
  44. unittest.main()

可以看到,虽然只写了一条用例,但是却执行了3次,根据传参不同,得到不同的结果,相当于3条用例。

我这里只是用了ddt.data,ddt还有其他的装饰方法,如:ddt.file_dataddt.unpack

关于ddt的详细介绍可以看看这篇博客:https://www.cnblogs.com/miniren/p/7099187.html和https://blog.csdn.net/wushuai150831/article/details/78453549,写的比较全面


2018-04-28 23:15:27

利用unittest+ddt进行接口测试(一):简单demo的更多相关文章

  1. 利用unittest+ddt进行接口测试(二):使用yaml文件管理测试数据

    知道ddt的基本使用方法之后,练习把之前用excel文件来维护的接口测试用例改用unittest+ddt来实现. 这里我选用yaml文件来管理接口参数,开始本来想用json,但是json无法添加注释, ...

  2. python基础===利用unittest进行测试用例执行的几种方式

    利用python进行测试时,测试用例的加载方式有2种:  一种是通过unittest.main()来启动所需测试的测试模块:  一种是添加到testsuite集合中再加载所有的被测试对象,而tests ...

  3. Solr配置与简单Demo[转]

    Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...

  4. 利用JDK动态代理机制实现简单拦截器

    利用JDK动态代理机制实现简单的多层拦截器 首先JDK动态代理是基于接口实现的,所以我们先定义一个接口 public interface Executer { public Object execut ...

  5. Spring环境搭建及简单demo

    1. Spring框架简介(以下这段话可用于面试求职) Spring为JavaEE开发提供了一个轻量级的解决方案,主要表现为, IOC(或者叫做DI)的核心机制,提供了bean工厂(Spring容器) ...

  6. 广深小龙-基于unittest、pytest自动化测试框架之demo来学习啦!!!

    基于unittest.pytest自动化测试框架之demo,赶紧用起来,一起学习吧! demo分为两个框架:①pytest    ②unittest demo 中 包含 web.api 自动化测试框架 ...

  7. 设计模式之单例模式的简单demo

    /* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...

  8. Spring的简单demo

    ---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...

  9. 使用Spring缓存的简单Demo

    使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...

随机推荐

  1. 微信小程序开发笔记

    前言: 因为前段时间一直在做关于微信小程序方面的项目,作为一名后端的攻城狮而言做一些简单的前端页面数据操作和管理还是比较容易快上手的,当然前提是要理解微信小程序的基本语法和请求原理.该篇博客主要记录的 ...

  2. .NET之微信消息模板推送

    最近在项目中使用到了微信消息模板推送的功能,也就是将对应的消息推送到对应的用户微信上去,前提是你必须要有一个微信公众号并且是付费了的才会有这个功能,还有就是要推送的用户必须是的关注了你的微信公众号的. ...

  3. Yii框架基础增删查改

    返回一条数据 Country::find()->one(); 返回所有数据 Country::find()->all(); 返回记录的数量 $country =Country::find( ...

  4. 【Android Studio安装部署系列】二十三、Android studio查看Gradle版本号

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 File——Project Structure 单击Project 可以看到,当前项目的gradle版本号是4.4. 参考资料 An ...

  5. 装箱问题的CPLEX求解

    装箱问题(Bin Packing Problem) 装箱问题即搬家公司问题.一个搬家公司有无限多的箱子,每个箱子的承重上限为W,当搬家公司进入一个房间时,所有物品都必须被装入箱子,每个物品的重量为wi ...

  6. 【Java】几道让你拿offer的知识点

    前言 只有光头才能变强 之前在刷博客的时候,发现一些写得比较好的博客都会默默收藏起来.最近在查阅补漏,有的知识点比较重要的,但是在之前的博客中还没有写到,于是趁着闲整理一下. 文本的知识点: Inte ...

  7. [SpringBoot guides系列翻译]通过JDBC和Spring访问关系数据库

    原文 参考链接 hikaricp Spring Boot JDBC Starter Spring Boot Starter Parent h2 database introduction Autowi ...

  8. [转]How to: Create a Report Server Database (Reporting Services Configuration)

    本文转自:https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms157300%28v%3dsql.10 ...

  9. js 3D旋转效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 可以让你神操作的手机APP推荐 个个都是爆款系列

    手机在我们的生活中显得日益重要,根据手机依赖度调查显示,69%的人出门时必带手机,20%的人经常在吃饭睡觉.上卫生间时使用手机:43%的人早上起床第一件事就是查看手机,不用多说,我们对于手机的依赖性越 ...