python3 unittest+request+HTMLTestRunner接口自动化(二)

 

 

(4)上一篇我们已经读取了配置文件。现在就开始使用读取出的值组合成接口的url,即现在可使用的url(geturlParams.py)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/11/8 16:25
# @Author : xx
# @Site : 
# @File : test11.py
# @Software: PyCharm

#获取接口的URL
from testFile  import readConfig
from testFile import readExcel

readConfig = readConfig.ReadConfig()#实例化readConfig类,用于读取配置文件config.ini文件

class geturl_Now():#定义一个方法,读取配置文件中的协议和host,组合成url
    def get_url(self):

        now_url = readConfig.get_http('scheme')+'://'+readConfig.get_http('baseurl')  #从config.ini文件获取协议和host
        return now_url


# print(geturl_Now().get_url()) #Geturl_Now()就是实例化类。不带参数会默认self
#读取表格数据作为请求的参数





(5)我们已经有了url,接下来就应该找到接口对应的参数和请求方法,所以开始封装请求方式post/get方法封装(configHttp.py)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/11/8 16:25
# @Author : xx
# @Site : 
# @File : test11.py
# @Software: PyCharm

#这个文件主要来通过get、post等方法来进行http请求,并拿到请求响应。

import requests
import json
#
# headers = {
#         'content-type': 'application/x-www-form-urlencoded',
#         'User-Agent': 'okhttp/3.8.1'
#     }

#,headers=headers

class Run_http():


    #定义post请求方法.参数url和data
    def post_method(self,url,data,headers):
        # print(url, data,headers)
        response = requests.post(url=url,data=data,headers=headers).json()
        # print(response.text)
        # res=response.text
        res = json.dumps(response, ensure_ascii=False, sort_keys=True, indent=2)
        # print(res)
        return res


    def get_method(self,url,data,headers):
        response = requests.get(url= url,params=data,headers=headers).json()
        res = json.dumps(response, ensure_ascii=False, sort_keys=True, indent=2)
        return res


    def run_http(self,method, url, data,headers):
        # print(url, data)
        result = None
        if method =="post":
            # print(url,data)
            result=self.post_method(url,data,headers)

        elif method=="get":
            result = self.get_method(url,data,headers)

        else:
            print("method值错误")

        return result



 

(6)看到请求方法已经封装好了。这时候会想起好像需要请求头。有时候需要登录,怎么办呢。就需要封装一个登录获取登录token也就是登录凭证的方法(get_token.py)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/11/8 16:25
# @Author : CT
# @Site : 
# @File : test11.py
# @Software: PyCharm


#判断token是否存在
import jsonpath

from common import configHttp
from testFile import readConfig
from testFile import getpathInfo
import json

import  requests
#实例化对象
Run_http = configHttp.Run_http()
readConfig = readConfig.ReadConfig()
#定义header头
headers = {
        'content-type': 'application/x-www-form-urlencoded',
        'User-Agent': 'okhttp/3.8.1',
        'x-safe-key':''

    }

#登录获取token,将token写入headers中
# print( readConfig.get_http('baseurl'))

url_login = readConfig.get_http('scheme')+ "://" +readConfig.get_http('baseurl')+"/v1/auth/auth"   #登录接口
# print(url_login)
#接口登录的请求参数自己看自己需要测试的APP的接口请求参数。我这里是举例
data = {
    "area_code":"+86",
    "tel":"12345678901",
    "code":"666666",
    "device":"",
    "device_type":"1" #1代表安卓手机

}



results = Run_http.run_http('post', url_login, data, headers)
#打印出登录成功返回的json值,方便取token值
#print(results)

def get_token():
#token取值自己看登录接口登录成功返回的json字段。不要直接抄,依据自己接口返回来取登录凭证token值
    token=json.loads(results)["data"]["token"]
    if token in results:
        # headers.append(token)
        headers['x-safe-token']=token
        # print(headers)

    else:
        print("token不存在")
    return headers

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值