非常感谢[百人计划]五娃的分享!下面是整理的笔记:

一、环境准备:

Pyhton 2.x或者Pyhton 3.x、Requests库。(我安装的版本是Pyhton 3.4)

安装

Pyhton 3.x安装参考文档http://www.cnblogs.com/lansan0701/p/6349442.html

Requests安装命令 pip install requests

使用上述命令的前提是已经安装了pip(pip安装也参考文档http://www.cnblogs.com/lansan0701/p/6349442.html

二、Requests做接口测试,首先明白以下问题:

1、如何发送请求?

1)如何知道请求的URL?

2)如何辨别请求的方式?

解决如上两点方法:1技术提供接口文档(最佳方案);2自己抓包。

2、如何组装数据?

get方法和data方法参数组装区别(见下文示例2、3)。

3、如何处理响应内容?

1)设置断言assert;

2)自己写判断语句(唯一识别判断)。

三、下面是三种代码形式

1、发送请求(get请求)

#!/usr/bin/env python
#示例1
import requests
url_one="http://www.baidu.com/s?wd=python" #请求的url
response_message=requests.get(url_one)
print(response_message.status_code) #打印相应结果状态码
print(response_message.text) #打印响应内容
print(response_message.url) #打印请求URL if u'python' in response_message.text:
print('success')
assert(response_message.status_code,201)

2、参数组装

get请求

#!/usr/bin/env python
#示例2
import requests
url_two="http://www.baidu.com/s"
payload={'wd':'python'}
response_message=requests.get(url=url_two,params=payload)
print(response_message.status_code)
print(response_message.text)
print(response_message.url) if 'python' in response_message.text:
print('success')
if 200==response_message.status_code:
print('send success')
assert(response_message.status_code,201)

post请求

#!/usr/bin/env python
#示例3 import requests
url_three="http://www.baidu.com/s"
data={'wd':'python'}
response_message=requests.post(url=url_three,data=data)
print(response_message.text)

3、unittest框架

将上述代码采用unittest框架会更简洁,如下:

#!/usr/bin/env python
#示例4
import requests
import unittest class ThisTest(unittest.TestCase): def test_get_method_no_params(self):
url_one="http://www.baidu.com/s?wd=python"
response_message=requests.get(url=url_one)
self.assertIn('python',response_message.text)
self.assertEqual(200,response_message.status_code) def test_get_method_with_params(self):
url_two="http://www.baidu.com/s"
payload={'wd':'python'}
response_message=requests.get(url=url_two,params=payload)
self.assertIn('python',response_message.text)
self.assertEqual(200,response_message.status_code)
self.assertEqual(url_two+'?wd'+'='+payload['wd'],response_message.url) if __name__=='__main__':
unittest.main()

四、总结

接口测试入门需要熟悉一下几点:

  1. Requests库基础;
  2. 接口协议类型;
  3. 参数组装;
  4. 请求的Url;
  5. 相应结果的处理;

五、补充

接口测试用例是依据功能测试抽离出来的,不包含业务的测试。

Pyhton-Requests之接口测试的更多相关文章

  1. requests实现接口测试

    python+requests实现接口测试 - get与post请求基本使用方法 http://www.cnblogs.com/nizhihong/p/6567928.html   Requests ...

  2. python+requests+json 接口测试思路示例

    实际项目中用python脚本实现接口测试的步骤: 1 发送请求,获取响应  >>2 提取响应里的数据,对数据进行必要的处理  >>3 断言响应数据是否与预期一致 以豆瓣接口为例 ...

  3. Python3 + requests + unittest接口测试

    一.缘 起 笔者最近完成了基于Python3 + requests + unittest的接口测试脚本,故在此做一下记录,于己为复盘,于彼为学习和参考 二.思 路 接口测试无非三步: 首先,造数据 - ...

  4. python+requests之接口测试

    最近学习接口测试,测试工具玩的差不多了,想用代码来尝试一下. 发现一个简单的库,requests 一:安装 pip install requests 二:使用 import requests url ...

  5. python+requests实现接口测试 - get与post请求使用(转载)

    转自:http://www.cnblogs.com/nizhihong/p/6567928.html 简介:Requests 是用Python语言编写,基于 urllib,采用 Apache2 Lic ...

  6. python+requests实现接口测试 - cookies的使用

    在很多时候,发送请求后,服务端会对发送请求方进行身份识别,如果请求中缺少识别信息或存在错误的识别信息, 会造成识别失败. 如一些需要用户登录以后才能访问的页面. import requests mya ...

  7. python3 requests 进行接口测试、爬虫使用总结

    Requests 是第三方模块,如果要使用的话需要导入.Requests也可以说是urllib模块的升级版,使用上更方便. 这是使用urllib的例子. import urllib.request i ...

  8. python+requests实现接口测试 - get与post请求使用

    简介:Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 ...

  9. python+requests+excel 接口测试

    1.EXCEL文件接口保存方式,如图. 2.然后就是读取EXCEL文件中的数据方法,如下: import xlrd class readExcel(object): def __init__(self ...

  10. Python+requests+excel接口测试

    2018-06-14   17:00:13 环境准备: - Python 3.7 - requests库 - xlrd 1.创建Excel文件 2.读取Excel文件 import xlrd clas ...

随机推荐

  1. storm_jdbc 最完整的版本

    开头:我这里是根据bolt与trident进行分类的,写入和读取的方法可能会在同一个类中,最后会展示一个测试的类来说明怎么用. JdbcSpout:这个类是我写入数据和读取数据的公用spout,细节注 ...

  2. linux下 su 与 su - 的区别和使用

    Linux下su与su -命令的区别   在启动服务器ntpd服务时遇到一个问题 使用 su root 切换到root用户后,不可以使用service命令: 使用 su - 后,就可以使用servic ...

  3. [转]Hibernate入门:批量插入数据

    转自:http://blog.csdn.net/xiazdong/article/details/7709068 一般如果要插入100万条数据,则会写如下代码: package org.xiazdon ...

  4. BZOJ 4592 SHOI2015 脑洞治疗仪 线段树

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4592 题意概述:需要维护一个01序列A,一开始A全部都是1.支持如下操作: 1.将区间[l ...

  5. 成为IT精英,我奋斗7年【转】

    这些日子 我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能够为国内IT的发展尽自己一份微薄的力量.最近看到很多学生朋友和我当年一样没 有方向 ,所以把我的经历写出来与大家共勉,希 ...

  6. Xcode & swift

    swift-apps swift 2018 apps Xcode Swift Playground https://developer.apple.com/download/ https://deve ...

  7. Java IO 小结

    Java IO 的学习需要明白流设计的体系结构,这样才能在实际需要的时候,通过API文档查阅,快速实现功能.

  8. Struts1防止表单重复提交

    package org.zln.struts.action; import org.apache.struts.action.Action; import org.apache.struts.acti ...

  9. HDOJ.2501 Tiling_easy version

    Tiling_easy version Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...

  10. C&C++——基本说明

    预处理器(Preprocessor) 1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * ...