• 基于Python的接口自动化-01


    为什么要做接口测试

    当前互联网产品迭代速度越来越快,由之前的2-3个月到个把月,再到班车制,甚至更短,每次发版之前都需要对所有功能进行回归测试,在人力资源有限的情况下,做自动化测试很有必要。由于UI更新较快,如若页面交互比较复杂,UI自动化测试将变得更加难以维护,相较之,接口自动化就显得比较简单且易于维护。此外,UI自动化测试其操作的也是数据,因此接口自动化是最简单的

    如何做接口测试

    本文主要讨论通过request库模拟发送Http请求,主要是get、post请求,同时使用unittest库来写测试case,首先需要导入这两个库哦

    import requests,unittest

    简单介绍一下get、post请求的区别吧

    get:1.从服务端获取数据 2.其请求的参数拼接在url地址后,所以可能导致信息的泄露,因此是非常不安全的

    post:1.向服务端发送数据,可能导致服务端数据的变更 2.其请求的数据在请求的body里面,较get请求安全些

    模拟get请求

    querystring = {"key":"value"}

    response =requests.get(test_url,params=querystring)

    模拟post请求

    data={

    "key1":"value1",

    "key2":"value2"

    }

    //一般情况下是json格式的数据,记得两个参数间应用逗号隔开

    headers = {

    'Content-Type': "application/json",

    'Cache-Control': "no-cache",

    'cookie':"***********”

    }

    //这些参数可通过抓包工具,如fiddlers,charles中request中获取

    response=requests.post(test_url, data=data, headers=headers)

    #response=requests.post(test_url, data=data, headers=headers) 当headers里面没有传必须的cookie时,可在方法里面直接提交

    #response=requests.request('POST',test_url, data=data, headers=headers) 一般不用这种方法,知道就行了

     

    测试中肯定会有一件头疼的事情,那就是有依赖的业务如何测试,比如很多都是基于登录状态的

    response=requests.post(test_url, data=payload,headers=headers) //获取请求

    response_cookies=response.cookies                                          //获取cookies对象

    session=response_cookies.get('SESSION_ID')                          //获取sessionid

    cookies={                                                                                      //组合成cookie对象

    'SESSION_ID':session

    }

     get、post请求可以实现了,自动化测试当然少不了断言了,代码没有人的主观判断,这个时候要用到assert,assertEqual,assertNotEqual,assertTrue,assertIsNone,assertIsInstance等方法

    python中assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。assert TRUE,“ERRORMSG”


    摘自:https://blog.csdn.net/qq1124794084/article/details/51668672

    今天就先写这么多,当然还有很多事情可以做

    如发送测试报告,借助HTMLTestRunner

    如mock测试数据

    等等

  • 相关阅读:
    bzoj3505[CQOI2014]数三角形
    COGS103&tyvj1899 [NOIP2002]矩形覆盖
    bzoj4318OSU &tyvj1952 Easy
    tyvj1863[Poetize I]黑魔法师之门
    hook框架frida某个类下的所有方法名字模板
    逆向so文件调试工具ida基础知识点
    linux上安装mitmproxy
    linux配置SOCK5代理
    hook框架frida 绕过fillder证书认证
    LeetCode 455. 分发饼干
  • 原文地址:https://www.cnblogs.com/zhangxiaodi/p/9545125.html
Copyright © 2020-2023  润新知