接口封装测试开发

作者: 七月尾巴_葵花 | 来源:发表于2017-04-07 23:43 被阅读251次
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib.request
import http.cookiejar
import urllib.parse
import ssl

from globalpkg.log import logger

class MyHttp:
    '''配置要测试接口服务器的ip、端口、域名等信息,封装http请求方法,http头设置'''

    def __init__(self, protocol, host, port, header = {}):
        # 从配置文件中读取接口服务器IP、域名,端口
        self.protocol = protocol
        self.host = host
        self.port = port
        self.headers = header  # http 头

        #install cookie
        cj = http.cookiejar.CookieJar()
        opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
        urllib.request.install_opener(opener)

        # 添加以支持ssl # 注意,发起的请求要为443端口
        https_sslv3_handler = urllib.request.HTTPSHandler(context=ssl.SSLContext(ssl.PROTOCOL_SSLv2))
        opener = urllib.request.build_opener(https_sslv3_handler)
        urllib.request.install_opener(opener)

    def set_host(self, host):
        self.host = host

    def get_host(self):
        return self.host

    def get_protocol(self):
        return self.protocol

    def set_port(self, port):
        self.port = port

    def get_port(self):
        return  self.port

    # 设置http头
    def set_header(self, headers):
        self.headers = headers

    # 封装HTTP GET请求方法
    def get(self, url, params=''):
        url = self.protocol + '://' + self.host + ':' + str(self.port)  + url + params

        logger.info('发起的请求为:%s' % url)
        logger.info('请求头为:%s' % self.headers)
        request = urllib.request.Request(url, headers=self.headers)
        try:
            response = urllib.request.urlopen(request)
            response_body = response.read()
            response_header = response.getheaders()
            response_status_code = response.status
            response = [response_body, response_header, response_status_code]
            return response
        except Exception as e:
            logger.error('发送请求失败,原因:%s' % e)
            return None

    # 封装HTTP POST请求方法
    def post(self, url, data=''):
        url = self.protocol + '://' + self.host + ':' + str(self.port)  + url

        logger.info('发起的请求为:%s' % url)
        logger.info('参数为:%s' % data)
        logger.info('请求头为:%s' % self.headers)
        request = urllib.request.Request(url, headers=self.headers)
        try:
            response = urllib.request.urlopen(request, data)
            response_body = response.read()
            response_header = response.getheaders()
            response_status_code = response.status
            response = [response_body, response_header, response_status_code]
            return response
        except Exception as e:
            logger.error('发送请求失败,原因:%s' % e)
            return None
封装HTTP xxx请求方法

相关文章

  • 接口测试-Java代码实现接口请求并封装

    前言: 在接口测试和Java开发中对接口请求方法进行封装都非常有必要,无论是在我们接口测试的时候还是在开发自测,以...

  • 接口封装测试开发

  • 从零开发接口自动化框架

    从零开发接口自动化框架 方法论:掌握测试框架设计和开发的思路 自动化用例封装 测试用例分层 参数化数据驱动 命令行...

  • rest-assured接口测试学习(三)

    前文:rest-assured接口测试学习(一)rest-assured接口测试学习(二) 补充知识 一、全局封装...

  • postman+newman框架之生成接口测试报告

    做测试的同仁,对于接口测试的都应该了解,接口测试不简单的是在开发时期,开发已写完完备的接口文档进行测试就完事的。 ...

  • JAVA实现HTTP请求方法

    一、概述 在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适。很多项目都会封装规定好本身项...

  • JMeter(1) 介绍+环境+安装+使用

    开发接口测试案例的整体方案: 分析出测试需求,并拿到开发提供的接口说明文档; 从接口说明文档中整理出接口测试案例(...

  • 网络请求

    ios开发 合理封装请求接口 概述 如今大多的app都会与网络打交道,作为开发者 合理的对网络后台请求接口进行封装...

  • Jmeter在企业中如何设计场景

    开发接口测试案例的整体方案:1、分析测试需求,并拿到开发提供的接口说明文档;2、从接口说明文档中整理出接口测试案例...

  • VUE项目多环境配置.md

    web项目开发,通常需要有开发环境、测试环境和生产环境,用于配置不同的环境变更,如调用本地接口、测试接口和生产接口...

网友评论

本文标题:接口封装测试开发

本文链接:https://www.haomeiwen.com/subject/thbkattx.html