把下面的代码放在requests_module.py文件中


# coding: utf-8 import requests
import logging
from requests.exceptions import * class GetResponse():
def __init__(self, url, method='get'):
self.__url = url
self.__method = method.lower()
self.with_session = requests.session() def get_response(self, session=False, *args, **kwargs): if self.__method == 'get' and session == False:
try:
__resp = requests.get(self.__url, *args, **kwargs)
except (MissingSchema, InvalidURL):
logging.error(u'请检查url:%s 是否正确' % self.__url)
except ConnectionError:
logging.error(u'网络连接失败或接口响应时间过长')
else:
return __resp elif self.__method == 'get' and session == True:
try:
__resp = self.with_session.get(self.__url, *args, **kwargs)
except (MissingSchema, InvalidURL):
logging.error(u'请检查url:%s 是否正确' % self.__url)
except ConnectionError:
logging.error(u'网络连接失败或接口响应时间过长')
else:
return __resp elif self.__method == 'post' and session == False:
try:
__resp = requests.post(self.__url, *args, **kwargs)
except (MissingSchema, InvalidURL):
logging.error(u'请检查url:%s 是否正确' % self.__url)
except ConnectionError:
logging.error(u'网络连接失败或接口响应时间过长')
else:
return __resp elif self.__method == 'post' and session == True:
try:
__resp = self.with_session.post(self.__url, *args, **kwargs)
except (MissingSchema, InvalidURL):
logging.error(u'请检查url:%s 是否正确' % self.__url)
except ConnectionError:
logging.error(u'网络连接失败或接口响应时间过长')
else:
return __respclass AnalysisResponse(object):
"""
解析response:response为一大段字符串,该类将这个大串字符串中有用的内容提取出来
""" def __init__(self, resp):
self.__resp = resp @property
def Url(self):
__url = self.__resp.url
return __url @property
def Status_code(self):
__status_code = self.__resp.status_code
return __status_code @property
def Str_Content(self):
"""
返回string类型的content
"""
__str_content = self.__resp.content
return __str_content @property
def Dic_Content(self):
"""
将response转换成字典后返回
"""
__dic_content = self.__resp.json()
return __dic_content @property
def Headers(self):
__headers = self.__resp.headers
return __headers @property
def Cookies(self):
__cookies = self.__resp.cookies
return __cookies

发送的方法了,我们看到它会根据你传入接口的http请求选择发送方式,并且判断了是否含有session,session可以省去你登录的时候再去校验cookies。是不是对__xx不太熟悉?你需要复习前面的内容了

微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~

接口测试框架——第三篇:发送(requests)的更多相关文章

  1. 接口测试框架——第四篇-url、excel内容等

    到现在为止,发送邮件(email_module).读excel(excel_module).发送requests(requests_module).常量(setting)我们都已经完成了,看看第一篇中 ...

  2. 接口测试框架——第六篇-读Excel封装方法

    谢谢@小麦苹果的提醒,才发现我借口测试少写了一个文件,今天给大家补上: common->service->excel_case_data.py # coding: utf-8 import ...

  3. 爬虫第三篇:requests模块

    requests模块其实就是对urllib.request模块的进步一不优化,提供了很多可选的参数,同时简化了操作.下面我还是贴上具体操作的代码. requests GET请求 GET请求html文件 ...

  4. Auty自动化测试框架第三篇——添加异常处理与日志收集

    [本文出自天外归云的博客园] 本次对框架进行完善,增加了日志收集功能和修饰运行功能,完善后的lib目录如下:

  5. Spring框架第三篇之基于XML的DI注入

    一.注入分类 Bean实例在调用无参构造器创建空值对象后,就要对Bean对象的属性进行初始化.初始化是由容器自动完成的,称为注入.根据注入方式的不同,常用的有两类:设值注入.构造注入.实现特定接口注入 ...

  6. django-rest-framework框架 第三篇 之CRUD视图扩展类(增删改查的优化)

    CRUD视图扩展类 1 CreateModelMixin 2 RetrieveModelMixin 3 UpdateModelMixin 4 DestroyModelMixin <1> 创 ...

  7. requests库写接口测试框架初学习

    学习网址:    https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dscpm/ff75b907-415d-4220-89 ...

  8. 基于python的接口测试框架设计(三)接口测试的框架

    基于python的接口测试框架设计(三)接口测试的框架 其实我这里用到的是unittest单元测试框架,,这个框架好就好在比较清楚,,setup terdown都可以处理一些初始化及完成后的工作 主要 ...

  9. 接口测试框架Requests

    目录 Requests Requests安装 Requests常见接口请求方法构造 请求目标构造 header构造 cookie 构造请求体 Get Query请求 Form请求参数 JSON请求体构 ...

随机推荐

  1. vue-cli Uncaught SyntaxError: Use of const in strict mode解决办法

    vue-cli初始化项目,开发环境运行项目使用了webpack-dev-server,而最新版本webpack-dev-server@2.9.1运行项目时,并不能成功的把es6语法转化为es5,所以在 ...

  2. org.springframework.stereotype.Service和com.alibaba.dubbo.config.annotation.Service两种service的区别

    这两个Service,都可以在service类头上使用@Service的注解,于是我就写错了,查了半天才发现.他们的区别大概是这个样子的: org.springframework.stereotype ...

  3. java实现赋值excel模板,并在新文件中写入数据,并且下载

    /** * 生成excel并下载 */ public void exportExcel(){ File newFile = createNewFile(); //File newFile = new ...

  4. IntelliJ IDEA 2017 主题安装及配置

    主题哪里下的? 网站:http://www.riaway.com/ 主题怎么安装? 然后选择文件,找到下载的主题,按步骤,重启之后即可使用: 主题如何配置? 以下所有配置基于 IntelliJ IDE ...

  5. iptables详解(13):iptables动作总结之二

    概述 阅读这篇文章需要站在前文的基础上,如果你在阅读时遇到障碍,请参考之前的文章. 前文中,我们已经了解了如下动作 ACCEPT.DROP.REJECT.LOG 今天,我们来认识几个新动作,它们是: ...

  6. 七种常见经典排序算法总结(C++)

    最近想复习下C++,很久没怎么用了,毕业时的一些经典排序算法也忘差不多了,所以刚好一起再学习一遍. 除了冒泡.插入.选择这几个复杂度O(n^2)的基本排序算法,希尔.归并.快速.堆排序,多多少少还有些 ...

  7. oracle实例内存(SGA和PGA)调整-xin

    一.名词解释 (1)SGA:System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区. ( ...

  8. Last_SQL_Errno: 1062

    Last_SQL_Errno: 1062: Last_Error: Error 'Duplicate entry '212' for key 'PRIMARY'' on query. Default ...

  9. week13《java程序设计》第13次作业总结

    week13<java程序设计>第13次作业总结 1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 答: 1.IP与端口:ip和域名相对应,可找 ...

  10. 关于$_SERVER['PHP_AUTH_USER']

    http://www.cnblogs.com/thinksasa/p/3421379.html PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 ...