python接口自动化测试二十:函数写接口测试

# coding:utf-8import requestsimport refrom bs4 import BeautifulSoup

# s = requests.session()  # 全局的s

def get_token(s):    ‘‘‘    fuction: 获取token    args: s 参数 -》s = requests.session()    :return  anti_token  ->{‘X-Anit-Forge-Token‘: ‘xx‘, ‘X-Anit-Forge-Code‘: ‘38515842‘}   ‘‘‘    # 局部的s没定义,从外部传入s    url = ‘https://passport.lagou.com/login/login.html‘    h1 = {            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"        }    r1 = s.get(url, headers=h1, verify=False)    # print(r1.text)

soup = BeautifulSoup(r1.content, "html.parser", from_encoding=‘utf-8‘)    tokenCode = {}    try:        t = soup.find_all(‘script‘)[1].get_text()        print(t)        tokenCode[‘X_Anti_Forge_Token‘] = re.findall(r"Token = ‘(.+?)‘", t)[0]        tokenCode[‘X_Anti_Forge_Code‘] = re.findall(r"Code = ‘(.+?)‘", t)[0]        return tokenCode    except:        print("获取token和code失败")        tokenCode[‘X_Anti_Forge_Token‘] = ""        tokenCode[‘X_Anti_Forge_Code‘] = ""        return tokenCode

def login_lgw(s, anti_token, user, psw):

url2 = ‘https://passport.lagou.com/login/login.json‘    h2 = {        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",        "X-Requested-With": "XMLHttpRequest",        "X-Anit-Forge-Token": anti_token[‘X_Anti_Forge_Token‘] ,        "X-Anit-Forge-Code": anti_token[‘X_Anti_Forge_Code‘],        "Referer": "https://passport.lagou.com/login/login.html"        }    body ={            "isValidate": "true",            "username": user,            "password": psw,            "request_form_verifyCode": "",            "submit": ""        }    print(s.headers)  # s的头部

# 更新s的头部    s.headers.update(h2)    print(s.headers)    r2 = s.post(url2, data=body, verify=False)    print(r2.text)    return r2.json()

if __name__ == "__main__":    # 自测的内容    s = requests.session()    token = get_token(s)    print(token)    user = "1232"    psw = "322222"    login_lgw(s, token, user, psw)



原文地址:https://www.cnblogs.com/zhongyehai/p/9160191.html

时间: 2024-10-08 23:46:07

python接口自动化测试二十:函数写接口测试的相关文章

python接口自动化测试二十九:yaml配置文件的写和读

# 先安装ruamel.yaml模块 写入配置文件: import os# 先安装ruamel.yaml模块from ruamel import yaml # 将字典写入到yamldict = { 'host1': '123', 'host2': '456', 'host3': '789', 'host4': '147', 'host5': {'asd': '123'} } curpath = os.path.dirname(os.path.realpath(__file__))yamlpath

python接口自动化测试二十五:执行所有用例,并生成HTML测试报告

    import requestsimport unittest class TestQQ(unittest.TestCase):    '''测试QQ号接口'''      # 此注释将展示到测试报告的测试组类 def test_qq(self):        '''测试QQ号码,正确的appkey'''      # 此注释将展示到测试报告的用例标题        url = 'http://japi.juhe.cn/qqevaluate/qq'        par = {     

python接口自动化测试二十六:使用pymysql模块链接数据库

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time    : 2018/5/28 18:51# @Author  : StalloneYang# @File    : mysql_test.py# @desc: # 连接数据库 import pymysql.cursors # 连接MySQL数据库connection = pymysql.connect(host='localhost', port=3306, user='yang', pass

python接口自动化测试二十二:文件下载

文件下载类型: Content-Type: octets/stream   一般为文件类型: 原文地址:https://www.cnblogs.com/zhongyehai/p/9160207.html

python接口自动化测试二:python代码实现接口测试

url = '接口地址' r = requests.get(url)           #发送get请求 print(r.status_code)            #打印状态码,若有重定向,返回的是重定向之后的代码 print(r.headers)                #打印返回的报头(头部) print(r.text)                   #查看返回结果的文本形式 r.status_code                #响应状态码 r.content   

python接口自动化测试二十三:文件上传

# 以禅道为例: 一.创建一个类,类里面写一个登录方法: import requestsclass LoginZentao(): def __init__(self, s): # 初始化 self.s = s # 定义一个全局的s def login(self): r = self.s.post() # self.s调用全局的s pass if __name__=='__main__': s = requests.session() zentao = LoginZentao(s) # 类实例化为

python接口自动化测试二:常用操作

url = '接口地址' r = requests.get(url)                      # 发送get请求 print(r.status_code)              # 打印状态码,若有重定向,返回的是重定向之后的代码 print(r.headers)                 # 打印返回的报头(头部) print(r.text)                    # 查看返回结果的文本形式 r.status_code               

python接口自动化测试(二)-requests.post()

上一节介绍了  requests.get()  方法的基本使用,本节介绍  requests.post()  方法的使用: 本文目录: 一.方法定义 二.post方法简单使用 1.带数据的post 2.带header的post 3.带json的post 4.带参数的post 5.普通文件上传 6.定制化文件上传 7.多文件上传 一.方法定义: 1.到官方文档去了下requests.post()方法的定义,如下: 2.源码: 3.常用返回信息: 二.post方法简单使用: 1.带数据的post:

python接口自动化测试(二)-requests.get()

环境搭建好后,接下来我们先来了解一下requests的一些简单使用,主要包括: requests常用请求方法使用,包括:get,post requests库中的Session.Cookie的使用 其它高级部分:认证.代理.证书验证.超时配置.错误异常处理等. 本节首先来了解一下requests库中如何发送get请求: 一.看下方法定义: 1.到官方文档去了下requests.get()方法的定义,如下: 2.点击右上角的[source],看一下它的源码如下: 看到最后一行return,get方法