IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 接口自动化测试框架搭建 -> 正文阅读

[开发测试]接口自动化测试框架搭建

不懂接口的可以先去了解一下,我就简单的说明一下接口的定义,接口定义:就是开发人员定义程序模块间连接的协议,我们传什么参数,返回什么参数,这都是开发定义的嘿嘿,接下来我要讲的是接口自动化测试的框架搭建,我们要用python+requests+unitest+xlrd。

1.首先requests是模拟发送请求的作用,可以这样简单的理解,好比post,get请求等等

2.unitest就是管理测试用例的作用

3.xlrd就是管理我们在代码里面数据的作用

注意:这些库如果没有是要下载的,下载方式是:win+r然后pip install requests另外两个也一样,把后面改了就行,下载完后如下,看好了:

第一步首先你要知道怎么用python+requests发送一个请求:

import requests
#请求网址
url=''
#请求body
data={
    username:'admin',
    password:123456
}

requests.post(url,json=data)

其中data就是按json的形式传入,这样我们就是模仿一个post请求(自己有登录接口的话更好,这里我只是教大家怎么模拟发送接口的),我们发现其实我们可以把这个给封装一个函数,然后把我们的数据按形参的形式传入就方便一些,代码如下,(就写了get和post常用的模板):

class Tool:

    def do_get(self,url,params=None,**kwargs):
        return requests.get(url,params,**kwargs)
    
    def do_post(self,url,data=None,**kwargs):
        return requests.post(url,data,**kwargs)

其中代码里面,params为None,data=None是因为我们不是所有请求的时候都要给数据的,就好比我们访问百度,我们是自己get百度这个网址的,所有我们这里用默认形参为None表示,那后面加这个**kwargs是表示我们发送请求的headers,他们是用字典的形式存储的,我们在发送请求时虽然有些是默认的,所以有时候我们不加上这个无所谓,但有时候我们是要加上一些特殊的数据的,就比如cookie。

接下来就是我们常用的就是发送了请求怎么获取响应body里面的内容呢?代码如下:

def get_text(self,res,key):
    try:
        txt=json.load(res)
        value=jsonpath.jsonpath(txt,'$..{0}'.format(key))
        if len(value)==1:
            return value[0]
        else:
            return value
????except :
    ????raise ValueError('没有这个元素')

注意我是把这些函数都封装到这个Tool这个类里面的,当我们的工具使用,这里面要导入我们的json库和jsonpath库,没有的还是和上面一样自己下载,pip install json等等

上面代码我们先通过json对我们的响应请求进行分析,是按json形式的,jsonpath.jsonpath(txt,'$..{0}'.format(key))这段代码是jsonpath库里面的方法,记住就行,意思就是把我们想获取的元素信息按照列表的形式存储,因为我们响应报文里面的内容有可能不止一个我们想获取的元素,所有我们要做判断

接下来就是我们的断言了,代码如下:

def assert_test(self,value1,value2):
    assert value1==value2,'断言失败,{0}不等于{1}'.format(value1,value2)

今天就写到这里,明天写后面工具的使用。。。。。。。。。。。。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:22:01  更:2022-03-21 21:23:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:15:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码