首页 > 其他分享 >【博学谷学习记录】超强总结,用心分享|Requests库以及集成UnitTest实现接口测试案例总结

【博学谷学习记录】超强总结,用心分享|Requests库以及集成UnitTest实现接口测试案例总结

时间:2022-11-13 15:33:10浏览次数:45  
标签:总结 请求 UnitTest 响应 json 参数 Requests response 测试方法

一,介绍

  Requests库是一个基于python语言开发的一个开源的库,能够完全满足基于HTTP协议的接口测试。

二,安装与验证

Requests库的安装:在cmd窗口输入:pip install requests 即可进行联网下载,如下图所示

 

 

 验证安装结果:pip show requests,显示结果如下,即为安装成功

 

 

 

 三,相关操作

3.1 发送GET请求

解决响应数据乱码问题   获取当前编码格式: 响应.encoding   设置新的编码规范: 响应.encoding="utf-8"

 

 

3.2 发送Post请求

3.2.1 提交from表单作为参数

 

 

 3.2.2  提交json数据

 

 

 注意:

  data: 参数接收form表单数据,后台会⾃动附加form表单请求信息头(data数据格式为字典)   json:参数接收json数据,后台会⾃动附加json表单请求信息头   (headers = {"Content-Type":"application/json"})

3.3 其他请求方式

put:修改资源 delete:删除资源 head:响应数据中只包含请求头,前提是项目中已实现该功能 options:查看接口支持的请求方法,前提是项目中已实现该功能

3.4 传递URL参数

3.4.1 直接通过url进行参数传递

 

3.4.2 通过params进行参数传递

可以传递两种类型的参数,一种是字符串形式的参数,一种是字典形式的参数

 

3.5 响应内容解析

主要用于断言中 常用的方法:   response.status_code :响应状态码   response.url :url地址信息   response.encoding :查看响应数据编码格式   response.headers :查看头部信息   response.cookies : 查看cookies信息   response.text :文本形式查看响应数据   response.content :字节码形式查看响应数据   response.json() :json形式查看响应数据

3.6 设置请求头

使用方法:headers={"Content-Type":"application/json"}

 

 3.7 设置session

作用:在多个请求之间存储数据并自动添加数据,如cookies 使用:   实例化: session = requests.Session()   发送请求:request.get() ==> session.get() 案例:

 

 

 四、集成UnitTest

UnitTest优势

  管理测试用例   提供了丰富的断言   生成测试报告

集成步骤:(使用TPShop项目完成对登录功能的接口测试)

实现思路: 

  1, 导包   2, 创建测试类# 创建测试方法     2.1 setup前置处理       实例化session对象       定义验证接口url地址       定义正如接口url地址     2.2 teardown 后置处理       关闭session对象   3,登录成功测试方法     发送验证码请求并断言     发登录请求并断言   4,账号不存在测试方法     发送验证码请求并断言     发登录请求并断言   5,密码错误测试方法     发送验证码请求并断言     发登录请求并断言

优化:

  在进行代码编写时,会发现很多重复的代码,这样很影响测试的效率,所以我们可以使用参数化来进行优化

参数化实现:

unittest本身是不支持参数化的,所以我们需要引入第三方插件parameterized来帮助我们实现参数化

把要测试的数据封装在一个json文件中(login.json)

 

 在测试类中构造测试数据,即把json文件中的数据读取出来并存放在一个列表中方便我们使用

 

 接着在登录测试方法上添加parameterized装饰器,传入已经构造好的测试数据

 

 最后修改我们测试方法中的参数,把以前直接传入的参数用变量名进行替换即可

注意:参数的顺序要和读取的json文件中的顺序一致

标签:总结,请求,UnitTest,响应,json,参数,Requests,response,测试方法
From: https://www.cnblogs.com/zj8970/p/16886040.html

相关文章

  • 2022-2023-1 20221419 《计算机基础与程序设计》第11周学习总结
    2022-2023-120221419《计算机基础与程序设计》第11周学习总结作业信息班级:[2022-2023-1-计算机基础与程序设计]https://edu.cnblogs.com/campus/besti/2022-2023-1-CFA......
  • 2022-2023-1 20221301 《计算机基础与程序设计》第十一周学习总结
    2022-2023-120221301《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程<班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFA......
  • 2022-2023-1 20221313《计算机基础与程序设计》第十一周学习总结
    2022-2023-120221313《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程<班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP......
  • 1.基础知识(5) --Matlab中特殊符号使用总结
    前言:上篇文章分享了Matlab经常会遇到(),[],与{}三种符号,下面接着捋一捋其他的特殊符号使用方法,主要有:冒号'分号&  &&与|   || 或~非.点1、:冒号冒号的主要用途是用......
  • 【索引】日总结索引
    date&linkcontext\(2022.11.6\)三道模拟赛题+CSP-S2022总结\(2022.11.7\)2022NOIPA层联测22四个口胡题解\(2022.11.8\)2022NOIPA层联测23T2T3T4......
  • Hive3源码总结2
    大数据技术之Hive源码2接上文2.4HQL生成AST(抽象语法树)2.5对AST进一步解析 接下来的步骤包括:1)将AST转换为QueryBlock进一步转换为OperatorTree;2)对OperatorTree进行逻辑优......
  • 房产信息管理系统--总结
    这份题是在上周五下午上课开始写的,趁着这几天在宿舍静默写了些相关博客,当时写了大概两个下午加两个晚上,周六晚上才写完,功能算是完善,但耗时非常非常久,建民老师要求3小时,大概......
  • 2022-2023-1 20221309《计算机基础与程序设计》第十一周学习总结
    2022-2023-120221309《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程<班级的链接>这个作业要求在哪里<作业要求的链接> https:......
  • 20221427第十一周学习总结
    20221427第十一周学习总结这个作业属于哪个课程 这个作业要求在哪里<作业要求的链接>https://www.cnblogs.com/rocedu/p/9577842.html#WEEK11这个作业的目标<......
  • 【Java】学习Java总结之JMM
    JMM介绍JMM是什么 呢?它是Java内存模型。我们都知道每个程序都有很多线程组成,既然出现线程必然会出现意想不到的问题。出现线程安全问题一般是因为主线程和工作线程数据不......