get√接口自动化核心知识点浓缩,为面试加分

这篇具有很好参考价值的文章主要介绍了get√接口自动化核心知识点浓缩,为面试加分。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

日常接触到的接口自动化从实际目标可以划分为两大类:

1、为模拟测试数据而开展的接口自动化

这种接口自动化大多是单次执行,目的很明确是为了功能测试创造测试数据,节约人工造数据的时间和人工成本,提高功能测试人员的测试效率。

2、在功能测试之前提前发现错误而开展的接口自动化

这种接口自动化的工作流程跟功能测试一样,需要设计接口测试用例,然后执行接口测试用例。

说白了就是对单接口进行功能校验,包括接口参数的必填性、长度字符类型限制、入参枚举值等是否正确、响应数据是否正确等进行校验。

本文主要讲解第二种的接口自动化测试。浓缩了接口自动化的核心点进行实战,该实战或许能成为面试的加分点。

  • 接口测试用例设计

  • 代码读取接口测试用例

  • 利用pytest框架实现接口自动化

  • 利用python-requests完成接口请求

  • 利用jenkins+allure实现持续构建和输出测试报告

需求分析

  • Excel管理接口测试用例

  • Pytest框架运行测试用例

  • Jenkins集成构建

  • Allure展示测试报告

数据准备

了解接口

1.接口请求方式:get

2.接口请求头:{"Content-Type": "text/html;charset=utf-8"}

3.接口请求体:{"key": "*****************,"type": ""}

4.参数值:type=guoji、keji、yule,默认top

5.新闻请求:http://v.juhe.cn/toutiao/index

备注:接口请求的key需要自行去聚合数据平台申请。

设计接口测试用例

接口测试用例设计思路跟功能测试用例设计一致,基本是是校验:必填项、字符类型长度限制、入参内容等。

接口部分用例设计如下:(仅供参考)

get√接口自动化核心知识点浓缩,为面试加分,软件测试,自动化,运维

脚本目录设计

完整的接口自动化测试,一般分为:数据、公共配置、接口脚本、报告四大基础文件夹。

  • 数据:Data文件夹用于存放数据,例如测试用例文档

  • 公共脚本:Common文件夹用于存放公共方法的代码文件,例如:读取测试用例代码文件等

  • 接口脚本:Request文件夹用于存放各个不同业务接口的代码文件,例如:获取新闻头条接口代码文件等

  • 报告:Report文件夹,用于存放测试结果报告

脚本设计相关知识点

读取测试用例

知识点1:xlrd读取excel的基础方法

1.打开文件对象:fb=xlrd.open_workbook(‘xls测试用例文件路径’)

2.获取工作表名称:sheetnames=fb.sheet_names ()

3.打开测试用例所在工作表:casesheet=fb.get_by_name(‘’用例所在工作表名称)

4.获取测试用例条数(表格行数):rows=casesheet.nrows

5.获取工作表内单元格值:cell_value=casesheet.cell_values(x,y),其中x 和y为单元格的横坐标和纵坐标

6.由于需要通过pytest的装饰器进行参数化,所以读取到的单元格需要组合成列表的模板

例如:

 
 

case1=[‘url_01’,’method_01’,{body_01 },’expect_01’] case2=[‘url_02’,’method_02’,{body_02 },’expect_02’]

最后提供给pytest读取的数据应该是:

 
 

[[‘url_01’,’method_01’,{body_01 },’expect_01’], [‘url_02’,’method_02’,{body_02 },’expect_02’]]

代码片段:

使用列表追加的方法append()。

get√接口自动化核心知识点浓缩,为面试加分,软件测试,自动化,运维

备注:通过cell_values()读取到的单元格数据,默认是字符串str类型。

知识点2:数据转化

1.url、method是字符串类型,所以无需转化

2.header和body需要通过json.loads()转为json格式

接口请求

知识点1:requests接口请求基础

1.发起接口请求:

 
 

resq=request.get() resq =request.post()

2.获取响应数据并转为json格式:resq.json()

3.断言:assert

4.提取响应内容:jsonpath语法

 
 

response[‘msg’] response[‘data’][‘name’]

知识点2:pytest框架

环境安装:

 
 

pip install pytest

1.Pytest使用规则:用例和脚本文件必须以test开头

2.参数化执行用例:Pytest装饰器@pytest.mark.aprametrize()

a)单个参数写法:@pytest.mark.parametrize('inData',[10,20]),第一个参数为变量名称,第二个为参数值。不需要设置循环读取参数值,因为pytest的装饰器会自动循环读取。

b)多个参数写法:(参数值以元组形式写)@pytest.mark.parametrize('第一个参数名称,第二个参数名称'),[(第一个参数的第一个值,第一个参数的第二个值),(第二个参数的第一个值,第二个参数的第二个值)]。

c)不需要设置循环读取参数值,因为pytest的装饰器会自动循环读取。

get√接口自动化核心知识点浓缩,为面试加分,软件测试,自动化,运维

3.本地调试运行脚本:

接口自动化运行脚本到生成allure-html报告,分为2步骤:

第1步:alluredir生成测试报告数据源文件json,存入report文件夹内

pytest.main(['接口请求脚本文件.py','-s','--alluredir=../report/'])

第2步:从report文件夹内将测试报告数据源文件json转为html报告

os.system('allure generate ../report/ -o ../report_html/')

持续构建

知识点:jenkins构建+allure测试报告

1.Jenkins环境搭建

2.下载allure报告插件

3.构建

a)构建:利用pytest命令执行脚本,并生成allure源数据

b)构建后操作:添加allure report(jenkins会自动将allure源数据组合成html报告)

get√接口自动化核心知识点浓缩,为面试加分,软件测试,自动化,运维

结果

get√接口自动化核心知识点浓缩,为面试加分,软件测试,自动化,运维

最后:

【整整200集】超超超详细的Python接口自动化测试进阶教程合集,真实模拟企业项目实战文章来源地址https://www.toymoban.com/news/detail-679035.html

到了这里,关于get√接口自动化核心知识点浓缩,为面试加分的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 使用Python接口自动化测试post请求和get请求,获取请求返回值

    使用Python接口自动化测试post请求和get请求,获取请求返回值

    目录 引言 请求接口为Post时,传参方法  获取接口请求响应数据 我们在做python接口自动化测试时,接口的请求方法有get,post等;get和post请求传参,和获取接口响应数据的方法; 我们在使用python中requests库做接口测试时,在做post接口测试传参的时候,需要传入请求体,我们把

    2024年02月02日
    浏览(21)
  • PyFlink核心知识点

    PyFlink核心知识点

    四层 说明 备注 SteamGraph 代码生成的最初的图 表示程序的拓扑结构 JobGraph 将多个符合条件的节点,链接为一个节点 可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗 ExecutionGraph JobGraph的并行化版本 是调度层最核心的数据结构 PhysicalGraph JobManager根据ExecutionGra

    2024年04月27日
    浏览(22)
  • Vue入门——核心知识点

    Vue入门——核心知识点

    Vue是一套用于 构建用户界面 的 渐进式 JS框架。 构建用户界面:就是将后端返回来的数据以不同的形式(例如:列表、按钮等)显示在界面上。 渐进式:就是可以按需加载各种库。简单的应用只需要一个核心库即可,复杂的应用可以按照需求引入各种Vue插件。 采用组件化模式

    2024年02月06日
    浏览(13)
  • JavaSE核心基础-循环-知识点

    1.循环概念 循环是在满足条件的情况下,反复的做同一件事。 Java语言中的循环语句有三种,分别是for语句、while语句和do-while语句。程序中需要循环处理时,程序员要根据实际问题,选择适当的循环语句。解决循环问题时一定要找到循环条件和循环操作。 2.for循环语句格式

    2024年02月22日
    浏览(15)
  • redis核心知识点简略笔记

    value数据类型 string 二进制安全 list 有序、可重复 set 无序、不重复 hash field-value的map sorted set 不重复、通过double类型score分数排序 场景 string 计数器 缓存 分布式锁 访问频率控制 分布式session hash 购物车等对象属性灵活修改 list 定时排行榜 set 收藏 sorted set 实时排行榜 持久化

    2024年02月13日
    浏览(15)
  • 垃圾回收的核心知识点解析

    垃圾回收的核心知识点解析

    Java运行时内存中的程序计数器、虚拟机栈、本地方法栈这三部分区域其生命周期与相关线程有关,随线程而生,随线程而灭。而程序计数器就是一个单纯存地址的整数也不需要关心,因此我们GC(垃圾回收)的主要目标就是堆(堆中存放着几乎所有实例对象)! 一个对象,如

    2024年02月16日
    浏览(11)
  • 一文吃透Tomcat核心知识点

    首先,看一下整个架构图。最全面的Java面试网站 接下来简单解释一下。 Server :服务器。Tomcat 就是一个 Server 服务器。 Service :在服务器中可以有多个 Service,只不过在我们常用的这套 Catalina 容器的Tomcat 中只包含一个 Service,在 Service 中包含连接器和容器。一个完整的 Serv

    2024年02月02日
    浏览(17)
  • Java核心技术知识点笔记—并发

    前言:多任务(multitasking),即同一刻运行多个程序的能力。并发执行的进程数目并不是由CPU数目制约的。操作系统将CPU的时间片分配给每一个进程,给人并行处理的感觉。 1、线程(thread):多线程程序的概念,即可以同时执行多个任务的程序。其中,每个任务称为一个线

    2023年04月12日
    浏览(8)
  • Java核心知识点整理大全23-笔记

    Java核心知识点整理大全23-笔记

    目录 21. JAVA 算法 21.1.1. 二分查找 21.1.2.冒泡排序算法 21.1.3. 插入排序算法 21.1.4. 快速排序算法 21.1.1. 希尔排序算法 21.1.2. 归并排序算法 21.1.3. 桶排序算法 21.1.4. 基数排序算法 21.1.5. 剪枝算法 21.1.6. 回溯算法 21.1.7. 最短路径算法 21.1.8. 最大子数组算法 21.1.9. 最长公共子序算法

    2024年02月04日
    浏览(32)
  • 【MQ 系列】RabbitMq 核心知识点小结

    【MQ 系列】RabbitMq 核心知识点小结

    RabbitMQ 是一个基于 AMQP 协议实现的企业级消息系统,想要顺畅的玩耍的前提是得先了解它,本文将主要介绍 rabbitmq 的一些基本知识点 特点 基本概念 消息投递消费的几种姿势 事务 集群 它是采用 Erlang 语言实现的 AMQP(Advanced Message Queued Protocol)的消息中间件,最初起源于金融系

    2024年01月23日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包