Pyhton-Requests之接口测试

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

一、环境准备:

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

五、补充

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

原文地址:https://www.cnblogs.com/lansan0701/p/6602940.html