Python 接口测试(五)
五:使用python进行组织编写接口测试用例
接口测试其实就是几个步骤。
- 拿到接口的url地址
- 查看接口是用什么方式发送
- 添加请求头,请求体
- 发送查看返回结果,校验返回结果是否正确
明白了接口测试的测试步骤,那么我们就可以来组织我们的代码。

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'])

结果:
['学习', '研究', '课题', '书房', '结论', '考虑', '沉思', '努力', '想出']
ps:我们看看利用工具测试该接口

接下来我们来引入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": "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__':
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)

执行后,会在当前目录下生成测试报告,截图如下:

其他接口的测试方法也是这个思路,
作者寄语:
前进的道路我们充满着迷茫,
前进的每一步我们都会有收获。
路在脚下,我们决定不了我们的出身,但是我们可以努力改变我们未来。
告别昨天失败的自己,努力拼搏今天,成就美好明天
padf文档分享:https://pan.baidu.com/s/1gfuXkpP
Python 接口测试(五)的更多相关文章
- Python接口测试框架实战与自动化进阶✍✍✍
Python接口测试框架实战与自动化进阶 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看 ...
- Python第五章__模块介绍,常用内置模块
Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群 群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...
- Python(五)编程小实例
Python(五)编程小实例 抓取网页信息,并生成txt文件内容! Python抓取网页技能--Python抓取网页就是我们常看见的网络爬虫,我们今天所要用到的就是我们Python中自带的模块,用这些 ...
- 初学Python(五)——元组
初学Python(五)——元组 初学Python,主要整理一些学习到的知识点,这次是元组. #-*- coding:utf-8 -*- #定义元素 t = (1,2,3) #添加元素 #删除元素 #更 ...
- Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块
Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块 目录 Pycharm使用技巧( ...
- Python接口测试实战1(上)- 接口测试理论
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Python接口测试实战5(上) - Git及Jenkins持续集成
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Python接口测试实战5(下) - RESTful、Web Service及Mock Server
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Python接口测试实战4(上) - 接口测试框架实战
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
随机推荐
- Hadoop2 和 Hadoop1 区别
Hadoop2 和 Hadoop1 区别 Namenode NameNode其实是Hadoop的一个目录服务,它包含着整个集群存储的文件的元数据. 早期发行的Hadoop1版本将所有HDFS目录和文件 ...
- Maven 项目 @Override must override a superclass method` 问题
问题 Maven 项目 @Override must override a superclass method` 原因 JDK 在1.5以上的版本,才支持@Override 注解 解决方法 (1)po ...
- 介绍下Python的两个标准库 os 和 sys
import sysprint(sys.path) #python 2 中报错 ....,打印的是绝对路径(***\\python\\lib\\site-packages# 第三方库,后退一级为标准库 ...
- solr-geohsah 按照距离搜索分组
通过solr的domain-import,将mysql的数据通过查询,导入到solr中.java通过使用solrj,链接solr,调用domaininport,并将分页参数设置到domain-impo ...
- Android检查更新下载安装
检查更新是任何app都会用到功能,任何一个app都不可能第一个版本就能把所有的需求都能实现,通过不断的挖掘需求迭代才能使app变的越来越好.检查更新自动下载安装分以下几个步骤: 请求服务器判断是否有最 ...
- python2 urllib2抓取51job网的招聘数据
#coding=utf-8 __author__ = "carry" import sys reload(sys) sys.setdefaultencoding('utf-8') ...
- 获取ip地址及城市信息
大家好,今天给大家分享的是一个简单的知识获取登录用户的ip地址及城市信息,lz是一个小白,如果有哪些错误的地方 欢迎大家指出 东西很简单,直接上代码 [HttpPost] public string ...
- 主从及转发DNS搭建
author:JevonWei 版权声明:原创作品 主DNS 安装bind软件包 yum -y install bind systemctl start named systemctl enable ...
- 百行go代码构建p2p聊天室
百行go代码构建p2p聊天室 百行go代码构建p2p聊天室 1. 上手使用 2. whisper 原理 3. 源码解读 3.1 参数说明 3.1 连接主节点 3.2 我的标识 3.2 配置我的节点 3 ...
- 【转义字符】HTML 字符实体< >: &
在开发中遇到javascript从后台获取的url 会被转义,如:http://localhost:8080/Home/Index?a=14&b=15&c=123,想把它转成http: ...