python+unittest+requests实现接口自动化的方法
作者:Silence&QH 发布时间:2022-04-10 08:47:38
标签:python,unittest,requests
前言:
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接口测试用例源码
# 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)
来源:https://www.cnblogs.com/101718qiong/p/8183049.html
0
投稿
猜你喜欢
- Microsoft? SQL Server? 2000 的可用版本如下:SQL Server 2000企业版作为生产数据库服务器使用。支持
- 1、卓越亚马逊的首页轮换图片,每刷新一次,都是随机不同的顺序显示,这样的设计解决了对于较多图片轮换而靠后的图片信息很少被看到的问题,这点对于
- 1、利用php gd库的函数绘制3D扇形统计图<?phpheader("content-type","t
- 非常不错,大家可以自己应用下。<% '//数据处理部分 dim Content,Num,I,st
- 今天我和中国著名画家"渔人"谈了一个关于"怎样才能设计好"的问题,他给我说了一句话,得益不浅,那句话
- 每个进行过较大型的ASP-Web应用程序设计的开发人员大概都有如下的经历:ASP代码与页面HTML混淆难分,业务逻辑与显示方式绞合,使得代码
- python3 在服务器上打印资产信息pip3 install prettytableurl 为 资产信息接口地址,返回为json信息。#
- 有多少次你在考虑怎样设置数据库时感到为难?其实,如果你在Linux上使用MySQL,就不会有这种情况了。在Linux上使用Webmin图形界
- 阅读上一篇:javascript面向对象编程(一)[javascript模拟传统OOP]javascript是一种非常灵活的语言,它的灵活度
- 描述event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。event对象只在事件发生的过程中才有效。eve
- 概述要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。像其他变量一样,使用运
- #region 读写xml文件的2个小函数,2005 4 2 by hyc public void 
- 1 , javascript字符集:javascript采用的是Unicode字符集编码。为什么要采用这个编码呢?原因很简单,16位的Uni
- 1. 什么是phpDocumentor ? PHPDocumentor 是一个用PHP写的工具,对于有规范注释的php程序,它能够快速生成具
- 在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数。万能的python就自带了argprase包使得这一工作变
- 如果你经常浏览网页一定见过很多网站在form表单中的文本域(textarea)中添加了的背景图片,一般是使用网站的logo,我记得我最早注意
- 用了这么多年的CSS,现在才明白CSS的真正匹配原理,不知道你是否也跟我一样?看1个简单的CSS:DIV#divBox p span.red
- 核心提示:本文针对mysql-noinstall版本,也就是解压缩版的安装配置应用做了个总结,这些操作都是平时很常用的操作。文章中不对mys
- 本文实例讲述了javascript设计模式 – 简单工厂模式。分享给大家供大家参考,具体如下:介绍:简单工厂模式是最常用的一类创建型设计模式
- 微信小程序 支付功能实现PHP实例详解前端代码: wx.request({ url: 'https://w