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

一、环境准备:

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. 相应结果的处理;

五、补充

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

最新文章

  1. Startup配置类 居然又是约定
  2. MySQL环境部署
  3. IAP的几个问题
  4. Technical notes fornight
  5. sdut 2153 Clockwise (2010年山东省第一届ACM大学生程序设计竞赛)
  6. C#语法功能结构
  7. HDU 4370 0 or 1 (最短路+最小环)
  8. nyoj 60 谁获得了最高奖学金
  9. mysql connect
  10. Eclipse快捷键调试
  11. [转] 使用Spring Boot和Gradle创建项目
  12. Linux下安装nfs服务器
  13. jQuery插件实现左右无缝轮播
  14. c++读取REG_MULTI_SZ类型注册表
  15. java复习笔记
  16. python全栈学习--day5
  17. 实现一个ordeeddict
  18. Yii框架学习资源盘点
  19. 【新特性】JDK1.6
  20. python LeetCode 两数相除

热门文章

  1. Python全栈 MongoDB 数据库(数据的修改)
  2. Docker安装Zabbix全记录
  3. ZooKeeper的伪分布式集群搭建
  4. php常见安全问题
  5. DM8168通过GPMC接口与FPGA高速数据通信实现
  6. springMVC js等文件找不到解决方法
  7. ARC074 E RGB Sequence DP
  8. BZOJ1044 [HAOI2008]木棍分割 【二分+Dp】
  9. 【BZOJ 3195 】[Jxoi2012]奇怪的道路 装压dp
  10. ACM模板~求逆序对的个数