前言:

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项目文件下有以下三个文件

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

案例:

1.get接口测试用例源码

  1. # coding:utf-8
  2. import requests
  3. import unittest
  4.  
  5. class get_request(unittest.TestCase):
  6. def setUp(self):
  7. self.get_url = 'https://www.baidu.com/'
  8.  
  9. def test_post_01(self):
  10. url=self.get_url
  11. r = requests.get(url)
  12. print r.text
  13.  
  14. def tearDown(self):
  15. pass
  16.  
  17. if __name__ == "__main__":
  18. unittest.main()

2.post接口测试用例源码

  1. # coding:utf-8
  2. import requests
  3. import json
  4. import unittest
  5.  
  6. class post_request(unittest.TestCase):
  7. def setUp(self):
  8. self.post_url = '..........' #根据实际接口,自己填写
  9. self.header = {'.......'} #根据实际内容,自己填写
  10.  
  11. def test_post_01(self):
  12. """正常数据"""
  13. url=self.post_url
  14. header = self.header
  15. data = {""}#根据实际内容,自己填写
  16. #将data序列化为json格式数据,传递给data参数
  17. r = requests.post(url, data=json.dumps(data), headers=header)
  18. print r.text
  19. def test_post_02(self):
  20. """异常数据"""
  21. url=self.post_url
  22. header = self.header
  23. data = {""}#根据实际内容,自己填写
  24. r = requests.post(url, data=json.dumps(data), headers=header)
  25. print r.text
  26.  
  27. def tearDown(self):
  28. pass
  29.  
  30. if __name__ == "__main__":
  31. unittest.main()

3.执行测试用例源码

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

python+unittest+requests实现接口自动化的更多相关文章

  1. Python+Unittest+Requests+PyMysql+HTMLReport 接口自动化框架

    整体框架使用的是:Python+Unittest+Requests+PyMysql+HTMLReport  多线程并发模式 主要依赖模块 Unittest.Requests.PyMysql.HTMLR ...

  2. Python+Unittest+Requests+PyMysql+HTMLReport 多线程并发接口化框架

    整体框架使用的是:Python+Unittest+Requests+PyMysql+HTMLReport 多线程并发模式 主要依赖模块 Unittest.Requests.PyMysql.HTMLRe ...

  3. 接口自动化-python unittest+requests+HTMLrunner

    从2015年毕业入行软件测试,快满4年了,之前技术分享都在百度贴吧上面,现在正式开始在博客中记录工作技术,努力成长,加油 接口测试的步骤1.组装好该接口需要的参数数据2.使用get或post附带参数数 ...

  4. python+unittest+requests+HTMLRunner编写接口自动化测试集

    问题描述:搭建接口测试框架,执行用例请求多个不同请求方式的接口 实现步骤: ① 创建配置文件config.ini,写入部分公用参数,如接口的基本url.测试报告文件路径.测试数据文件路径等配置项 [D ...

  5. python+requests实现接口自动化

    1. 前言 今年2月调去支持项目接口测试,测试过程中使用过postman.jmeter工具,基本能满足使用,但是部分情况下使用较为麻烦.比如:部分字段存在唯一性校验或字段间有业务性校验,每次请求均需手 ...

  6. Python用于http/https接口自动化

    本接口自动化框架主要用到的类: 1. unittest:组织测试用例 2. requests:http/https请求 3. HTMLTestRunner:生成测试报告 4. Dingtalkchat ...

  7. python学习笔记(接口自动化框架 V2.0)

    这个是根据上次框架版本进行的优化 用python获取excel文件中测试用例数据 通过requets测试接口.并使用正则表达式验证响应信息内容 生成xml文件测试报告 版本更新内容: 1. 整理了Cr ...

  8. python requests简单接口自动化

    get方法 url:显而易见,就是接口的地址url啦 headers:定制请求头(headers),例如:content-type = application/x-www-form-urlencode ...

  9. python+requests+excel 接口自动化框架

    一.项目框架如图: 1.common :这个包都是一些公共的方法,如:手机号加解密,get/post接口请求的方法封装,接口鉴权,发邮件,读写excel文件方法等等 2.result:存放每次运行的l ...

随机推荐

  1. Find out your Java heap memory size

    In this article, we will show you how to use the -XX:+PrintFlagsFinal to find out your heap size det ...

  2. python3操作Excel openpyxl模块的使用

    python 与excel 安装模块 本例子中使用的模块为: openpyxl 版本为2.4.8 安装方法请参看以前发表的文章(Python 的pip模块安装方法) Python处理Excel表格 使 ...

  3. Redis 七月小说网的爬虫缓存设计

    一.爬虫策略 1.主服务器先根据spider.all set排重,再 lpush request_url 到spider.wait List中,并且 sadd request_url 到 set中: ...

  4. Excel转Json工具

    应用程序在本地的数据配置的格式一般有JSON.XML.YAML.INI等格式,但是如果直接编写JSON数据往往不是特别方便, 今天给大家分享的是如何在EXCEL配置好数据,然后一键转换成JSON和C# ...

  5. 使用InstallUtil安装或卸载服务

    使用InstallUtil安装或卸载服务 一.安装服务: C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe D:\MyServ ...

  6. ArrayList中的一些小细节@JDK8

    ArrayList中的一些小细节@JDK8 protected transient int modCount = 0; 该变量用于记录ArrayList的版本号,不可被序列化,每次对ArrayList ...

  7. 标题title出现不规则背景

    Html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  8. JVM_垃圾收集器

    最近刚好有时间,就简单的看了下JVM的几种垃圾回收器,它们都是计算机历史发展的产物,先简单的做一个整理,并没有哪一款垃圾收集器就一定是最优,还需要结合使用场景.参数配置等进行考量,根据系统情况搭配出尽 ...

  9. Python strip()函数用法

    Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数: strip 同时去掉左右两边的空格lstrip 去掉左边的空格rstrip 去掉右边的空格 具体示 ...

  10. Oracle TNS Listener Remote Poisoning

    Oracle TNS Listener Remote Poisoning 远程数据投毒漏洞(CVE-2012-1675) 1.漏洞简介: 允许攻击者在不提供用户名/密码的情况下,向远程“TNS Lis ...