Requests接口测试(五)
使用python+requests编写接口测试用例
好了,有了前几章的的基础,写下来我把前面的基础整合一下,来一个实际的接口测试练习吧。
接口测试流程
- 1.拿到接口的URL地址
- 2.查看接口是用什么方式发送
- 3.添加请求头、请求体
- 4.发送查看返回结果,校验返回结果是否正确
我们知道了接口测试的步骤,下面我们开始组织我们的代码:
import requests # 接口的url
url = "http://fanyi.baidu.com/v2transapi" # 接口的参数
params = {
"from":"en",
"to":"zh",
"query": "test"
} r = requests.request("post", url, params=params) # 打印返回结果
print(r.text) # 为了让结果看的更加清楚一点,我取来翻译的字段
import json
d = json.loads(r.text)
print(d['liju_result']['tag'])
结果: ['试验', '测验', '考验', '化验', '考查', '受试验', '受测验', '受考验', '测得结果'] (结果很长,截取最后的)
修改参数后的请求:
import requests url = "http://fanyi.baidu.com/v2transapi"
params = {
"from":"en",
"to":"zh",
"query": "study" #
}
r = requests.request("post", url, params=params) import json
d = json.loads(r.text)
print(d['liju_result']['tag'])
结果:
['学习', '研究', '课题', '书房', '结论', '考虑', '沉思', '努力', '想出']
引入unittest单元测试框架集成接口测试:
import requests,unittest,json
class Testbaiduapi(unittest.TestCase):
def setUp(self):
url = "http://fanyi.baidu.com/v2transapi"
def testzhen(self):
params = {
"from":"en",
"to":"zh",
"query": "study" #
}
url = "http://fanyi.baidu.com/v2transapi"
r = requests.request("post", url, params=params)
r=json.loads(r.text)
assert u'学习' in r['liju_result']['tag']
def testzhen1(self):
params = {
"from":"en",
"to":"h",
"query": "study" #
}
url = "http://fanyi.baidu.com/v2transapi"
r = requests.request("post", url, params=params)
r=json.loads(r.text)
assert u'学习' in r['liju_result']['tag']
def tearDown(self):
pass
if __name__=='__main__':
unittest.main(verbosity=2)
在python中,提供了HTMLTestRunner.py来生成测试报告,把该文件下载后,直接放到python安装文件的lib的目录下,
就可以导入该模块使用了,见该实现的代码:
import requests,unittest,json,HTMLTestRunner
class Testbaiduapi(unittest.TestCase):
def setUp(self):
url = "http://fanyi.baidu.com/v2transapi"
def testzhen(self):
params = {
"from":"en",
"to":"zh",
"query": "study" #
}
url = "http://fanyi.baidu.com/v2transapi"
r = requests.request("post", url, params=params)
r=json.loads(r.text)
assert u'学习' in r['liju_result']['tag']
def testzhen2(self):
params = {
"from":"en",
"to":"h",
"query": "stud" #
}
url = "http://fanyi.baidu.com/v2transapi"
r = requests.request("post", url, params=params)
r=json.loads(r.text)
assert u'学' in r['liju_result']['tag']
def tearDown(self):
pass
if __name__=='__main__':
report_dir= r's.html'
re_open= open(report_dir,'wb')
suite=unittest.TestLoader().loadTestsFromTestCase(Testbaiduapi)
runner=HTMLTestRunner.HTMLTestRunner(
stream=re_open,
title=u'百度翻译api接口测试报告',
description=u'百度翻译api接口测试详情'
)
runner.run(suite)
Requests接口测试(五)的更多相关文章
- requests接口测试-requests的安装
requests接口测试-requests的安装 安装常见问题 提示连接不上,443问题 一般是因为浏览器设置了代理,关闭代理. 网络加载慢,设置国内镜像地址 1.pip安装 2.pycharm安装 ...
- Python+Requests接口测试教程(1):Fiddler抓包工具
本书涵盖内容:fiddler.http协议.json.requests+unittest+报告.bs4.数据相关(mysql/oracle/logging)等内容.刚买须知:本书是针对零基础入门接口测 ...
- Python+Requests接口测试教程(2):
开讲前,告诉大家requests有他自己的官方文档:http://cn.python-requests.org/zh_CN/latest/ 2.1 发get请求 前言requests模块,也就是老污龟 ...
- Python+Requests接口测试教程(2):requests
开讲前,告诉大家requests有他自己的官方文档:http://cn.python-requests.org/zh_CN/latest/ 2.1 发get请求 前言requests模块,也就是老污龟 ...
- Requests接口测试-对cookies的操作处理(一)
大家都对cookie都不陌生,我们本篇文章使用requests结合cookie进行实例演示.我们使用一个接口项目地址,因为接口项目涉及到隐私问题,所以这里接口的地址我暂时不会给大家开放,但是我会给大家 ...
- unittest,requests——接口测试脚本及报告
用unittest管理两个利用requests模块,做百度搜索的简单接口测试用例,之后自动输出报告 # encoding=utf-8import requests,unittest,HTMLTestR ...
- Requests接口测试-对cookies的操作处理(二)
我们继续来讨论一下cookie这方面的内容,我们都知道cookie是数据,一般的话在我接口测试中,数据都是要和代码进行分离的.本篇内容,我们队cookie内容进行处理,我们把登陆成功后的cookie写 ...
- Requests接口测试(一)
接口测试概念 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关 ...
- Requests接口测试库-官网快速上手
Requests 一个发送HTTP请求的库基于urllib3,相比自带的库,提供了更高效简洁的可用方法,测试从业者用来做接口测试的一个好工具 文章内容均来自官网:https://requests.re ...
随机推荐
- [樹莓派]用mkusb来制作U盘启动安装Ubuntu 15.04
之前實踐過這文章的描述,還可以成功:http://www.linuxdiyf.com/linux/12719.html,轉記錄餘下: 官方英文文档,教你在Ubuntu 15.04下使用mkusb来制作 ...
- 一步一步建立 webpack 4 项目
一步一步建立 webpack 4 项目 cnpm init -y cnpm i webpack --save-dev cnpm i webpack-cli --save-dev 修改 package. ...
- Java 传递可变参数和方法重载
形式:类型... 参数名 示例:public void show(int... a) {}; 可变参数在方法中被当作数组来处理 可变参数传值的四种方式: 一个值也不传,可变参数会接收到长度为0的数组 ...
- Python学习笔记之os模块
Python中的os提供了非常丰富的方法用来处理文件和目录,下面我们将详细的介绍os相关的一些方法和函数: os 路径相关的函数: 1.os.listdir(dirname):列出dirname目录下 ...
- ADO连接ACCESS数据库
首先在StdAfx.h中加入 建立连接:(在xxApp文件中) 1 声明变量 2 建立连接 (1) AfxOleInit 初始化 OLE 为应用程序的支持. BOOL AFXAPI AfxOleIn ...
- AIX PowerHA (HACMP) Commands
PowerHA(HACMP) Commands How to start cluster daemons (options in that order: clstrmgr, clsmuxpd, br ...
- git 本地文件里内容 操作记录
本地环境文件合并分支(以下的都分别 commit提交了的) [一.分支[追加] 和 [新增] 新信息 合并主线 情景] 分支内容: dr.find_element_by_id("su&qu ...
- Python Twisted系列教程16:Twisted 进程守护
作者:dave@http://krondo.com/twisted-daemonologie/ 译者: Cheng Luo 你可以从”第一部分 Twist理论基础“开始阅读:也可以从”Twisted ...
- php浏览器端调试输出方法
1.利用js打印到浏览器控制台 <?php function console_log($data) { if (is_array($data) || is_object($data)) ...
- leetcode728
vector<int> selfDividingNumbers(int left, int right) { vector<int> V; for (int i = left; ...