接口自动化测试之配置接口configHttp

关键词:configHttp.py

思路图


一、配置HTTP

1)接口类型:

接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。

(1) webservice接口:走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都要通过工具才能进行调用,测试。

(2) http api 接口:走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法。


2)接口的请求方法:get()和post()

常用的几种接口请求方式:

(1) GET:从指定资源获取数据

(2) POST:向指定的资源请求被处理的数据(例如用户登录)

(3) PUT:上传指定的URL,一般是修改,可以理解为数据库中的 update

(4) DELETE:删除指定资源


3)get()方法对应的参数:url, headers, params, timeout

对于requests提供的get方法,有几个常用的参数:

url:显而易见,就是接口的地址url啦

headers:定制请求头(headers),例如:content-type = application/x-www-form-urlencoded

params:用于传递测试接口所要用的参数,这里我们用python中的字典形式(key:value)进行参数的传递。

timeout:设置接口连接的最大时间(超过该时间会抛出超时错误)


4)post()方法对应的参数:url, headers, data, files, timeout

其中,传参的类型content-type有哪几种?

import requests

import readConfig as readConfig

from common.Log import MyLog as Log

import json

localReadConfig = readConfig.ReadConfig()

class ConfigHttp:

        def __init__(self):

                global scheme, host, port, timeout

                scheme = localReadConfig.get_http("scheme")

                host = localReadConfig.get_http("baseurl")

                port = localReadConfig.get_http("port")

                timeout = localReadConfig.get_http("timeout")


                self.log = Log.get_log()

                self.logger = self.log.get_logger()


                self.headers = {}

                self.params = {}

                self.data = {}

                self.url = None

                self.files = {}

                self.state = 0

        def set_url(self, url):

                """         set url         :param: interface url         :return:         """

                self.url = scheme+'://'+host+url

        def set_headers(self, header):

                """         set headers         :param header:         :return:         """

                self.headers = header

        def set_params(self, param):

                """         set params         :param param:         :return:         """

                self.params = param

        def set_data(self, data):

                """         set data         :param data:         :return:         """

                self.data = data

        def set_files(self, filename):

                """         set upload files         :param filename:         :return:         """

                if filename != '':

                        file_path = 'F:/AppTest/Test/interfaceTest/testFile/img/' + filename

                        self.files = {'file': open(file_path, 'rb')}

                if filename == '' or filename is None:

                        self.state = 1

                        # defined http get method

        def get(self):

                """         defined get method         :return:         """

                try:

                        response = requests.get(self.url, headers=self.headers, params=self.params, timeout=float(timeout))

                        # response.raise_for_status()

                        return response

                except TimeoutError:

                        self.logger.error("Time out!")

                        return None

            # defined http post method

            # include get params and post data

            # uninclude upload file

        def post(self):

                """         defined post method         :return:         """

                try:

                        response = requests.post(self.url, headers=self.headers, params=self.params, data=self.data, timeout=float(timeout))

                        # response.raise_for_status()

                        return response

              except TimeoutError:

                        self.logger.error("Time out!")

                        return None

                # defined http post method

                # include upload file

        def postWithFile(self):

                """         defined post method         :return:         """

                try:

                        response = requests.post(self.url, headers=self.headers, data=self.data, files=self.files, timeout=float(timeout))

                        return response

                except TimeoutError:

                        self.logger.error("Time out!")

                        return None

                # defined http post method

                # for json

        def postWithJson(self):

                """         defined post method         :return:         """

                try:

                        response = requests.post(self.url, headers=self.headers, json=self.data, timeout=float(timeout))

                        return response

                except TimeoutError:

                        self.logger.error("Time out!")             return None


if __name__ == "__main__":                    

        print("ConfigHTTP")

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343