python+unittest+requests实现接口自动化的方法


Posted in Python onNovember 29, 2018

前言:

Requests简介

Requests 是使用Apache2 Licensed 许可证的 HTTP 库。用 Python 编写,真正的为人类着想。

Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 有点落后了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。

总之,大家建议大家用Requests吧。

Requests的官方文档:http://cn.python-requests.org/zh_CN/latest/

通过下面方法安装requests

pip install requests

实例实现步骤:

1.采用unittest把每个接口写成一个个测试脚本

2.一个测试脚本中包含一个接口,但是可以包含多个测试用例(即每个接口需要进行多种情况的验证,接口测试用例名称已test开头)

3.使用discover(),该方法会自动根据测试目录匹配查找测试用例文件,并且将查找到的测试组装到测试套件中,因此可以直接通过run()方法执行discover,大大简化了测试用例的查找和执行

4.利用HTMLTestRunner生成测试报告

文档结构:project项目文件下有以下三个文件

python+unittest+requests实现接口自动化的方法

1.report存放测试结果
2.test_case存放测试用例
3.run_test_case.py执行测试用例文件

案例:

1.get接口测试用例源码

# coding:utf-8
import requests
import unittest

class get_request(unittest.TestCase):
  def setUp(self):

    self.get_url = 'https://www.baidu.com/'

  def test_post_01(self):

    url=self.get_url

    r = requests.get(url)

    print r.text

  def tearDown(self):
    pass


if __name__ == "__main__":

  unittest.main()

2.post接口测试用例源码

# coding:utf-8
import requests
import json
import unittest
class post_request(unittest.TestCase):

  def setUp(self):

    self.post_url = '..........' #根据实际接口,自己填写

    self.header = {'.......'} #根据实际内容,自己填写

  def test_post_01(self):

    """正常数据"""

    url=self.post_url

    header = self.header

    data = {""}#根据实际内容,自己填写

    #将data序列化为json格式数据,传递给data参数

    r = requests.post(url, data=json.dumps(data), headers=header)

    print r.text

  def test_post_02(self):

    """异常数据"""

    url=self.post_url

    header = self.header

    data = {""}#根据实际内容,自己填写

    r = requests.post(url, data=json.dumps(data), headers=header)

    print r.text

 

  def tearDown(self):

    pass

if __name__ == "__main__":

  unittest.main()

3.执行测试用例源码

# coding=utf-8
import unittest
import HTMLTestRunner
import time
# 相对路径
test_dir ='./test_case'
test_dir1 ='./report'
discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')
# 定义带有当前测试时间的报告,防止前一次报告被覆盖
now = time.strftime("%Y-%m-%d %H_%M_%S")
filename = test_dir1 + '/' + now + 'result.html'
# 二进制打开,准备写入文件
fp = file(filename, 'wb')
# 定义测试报告
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'测试报告', description=u'用例执行情况')
runner.run(discover)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 的 with 语句详解
Jun 13 Python
初学Python实用技巧两则
Aug 29 Python
Python使用scrapy抓取网站sitemap信息的方法
Apr 08 Python
python编写爬虫小程序
May 14 Python
python并发编程之线程实例解析
Dec 27 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
小白入门篇使用Python搭建点击率预估模型
Oct 12 Python
对Python3 goto 语句的使用方法详解
Feb 16 Python
python面向对象 反射原理解析
Aug 12 Python
python OpenCV GrabCut使用实例解析
Nov 11 Python
Python调用jar包方法实现过程解析
Aug 11 Python
Python Matplotlib绘制动画的代码详解
May 30 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 #Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 #Python
利用Pycharm断点调试Python程序的方法
Nov 29 #Python
对pandas将dataframe中某列按照条件赋值的实例讲解
Nov 29 #Python
详解分布式任务队列Celery使用说明
Nov 29 #Python
Python正则表达式和元字符详解
Nov 29 #Python
Django中使用Celery的方法示例
Nov 29 #Python
You might like
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
php 随机排序广告的实现代码
2011/05/09 PHP
php判断是否为json格式的方法
2014/03/04 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
js实现弹窗暗层效果
2017/01/16 Javascript
用原生js做单页应用
2017/01/17 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
python实现井字棋游戏
2020/03/30 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
Django框架 querySet功能解析
2019/09/04 Python
django自定义模板标签过程解析
2019/12/14 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
python 图像增强算法实现详解
2021/01/24 Python
暇步士官网:Hush Puppies
2016/09/22 全球购物
教师演讲稿范文
2014/01/08 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
医学生求职信
2014/07/01 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
安全检查汇报材料
2014/12/26 职场文书
投标单位介绍信
2015/05/05 职场文书
硕士学位申请报告
2015/05/15 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
Golang 结构体数据集合
2022/04/22 Golang