HttpRunner-04-extract

简介: HttpRunner-04-extract

什么是 extract


extract 顾名思义,我们就可以猜到其实用来做数据提取和引用的。


使用场景


通常,测试框架中都有获取数据并且将其存储到变量的机制。httprunner 也不例外,extract 就是用来提取变量并且供后续步骤使用。


在接口测试中,大多数接口都是需要鉴权的,而我们不可能在每个测试步骤,甚至测试用例中重复进行 token 的获取。通常,我们会采用如装饰器,方法调用,变量引用等手段解决这个问题。


httprunner 中,我们可以通过 extract 在用例的开始获取一次 token 并将其保存到变量中,这样后续的 apistep 就可以直接使用变量了。当然我们也可以通过 debugtalk 实现。


本文主要介绍下 extract 提取数据和引用。


extract 在 case 中


case 中有两个 step,假设我们的 step1 是获取 token 并且保存到变量,step2 会携带 token 进行接口的访问。


case


config:
    name: "demo testcase"
    variables:
        device_sn: "ABC"
        username: ${ENV(USERNAME)}
        password: ${ENV(PASSWORD)}
    base_url: "https://getman.cn/mock"
teststeps:
-
    name: demo step 1
    api: api/demo_api.yml
    variables:
        user_agent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
        device_sn: $device_sn
    extract:
        - token: content.name
    validate:
        - eq: ["status_code", 200]
    setup_hooks:
        - ${hook_print(setup)}
    teardown_hooks:
        - ${hook_print(teardown)}
-
    name: demo step 2
    api: api/demo_api2.yml
    variables:
        token: $token
    validate:
        - eq: [reason, OK]
复制代码


以上代码中的 contentstatus_code 都是内置的关键字,我们可以直接使用,而且你会发现它们和 Requests 中的关键字都是同名的。



demo_api2 中的 headers 中携带了 Token 变量,Token 的内容就是 extract 保存的 token


name: demo api 2
variables:
    var1: Chrome1.2
    var2: value2
request:
    url: /
    method: GET
    headers:
        User-Agent: $var1
        Content-Type: "application/json"
        Token: $token
    json:
        key: $var2
validate:
    - eq: ["status_code", 200]
复制代码


测试报告中的体现


step1response

网络异常,图片无法展示
|


step2headers


网络异常,图片无法展示
|


以上,我们可以看到从 step1extracttoken 值已经成功保存并传递到了 step2headers 中。


感谢您的阅读,别忘了关注,点赞,评论,转发四连哟!


相关文章
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1710 5
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
JSON jenkins 测试技术
Python接口自动化测试框架(工具篇)-- 接口测试工具HTTPRUNNER
本文介绍了Python接口自动化测试框架HTTPRunner,包括其安装、使用方法,并通过实际操作演示了如何利用HTTPRunner进行接口测试,同时还探讨了HTTPRunner作为接口自动化测试解决方案的可能性和实用性。
347 0
|
JSON 测试技术 API
连测试大拿都不敢说熟练掌握的HTTPRUNNER2.x使用技巧
这篇文章详细介绍了HTTPRunner 2.x的高级使用技巧,包括工具的设计思想、核心功能、分层测试思想,以及如何搭建开发环境、理解基础概念、掌握关键知识点和进行框架扩展使用。
198 2
连测试大拿都不敢说熟练掌握的HTTPRUNNER2.x使用技巧
|
10月前
|
消息中间件 人工智能 运维
12月更文特别场——寻找用云高手,分享云&AI实践
我们寻找你,用云高手,欢迎分享你的真知灼见!
3914 101
在Linux中,如何检查磁盘空间使用情况?
在Linux中,如何检查磁盘空间使用情况?
|
存储 人工智能 缓存
AI助理直击要害,从繁复中提炼精华——使用CDN加速访问OSS存储的图片
本案例介绍如何利用AI助理快速实现OSS存储的图片接入CDN,以加速图片访问。通过AI助理提炼关键操作步骤,避免在复杂文档中寻找解决方案。主要步骤包括开通CDN、添加加速域名、配置CNAME等。实测显示,接入CDN后图片加载时间显著缩短,验证了加速效果。此方法大幅提高了操作效率,降低了学习成本。
5859 16
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
302 9
|
关系型数据库 MySQL 数据库
MYSQL索引的分类与创建语法详解
理解并合理应用这些索引类型,能够有效提高MySQL数据库的性能和查询效率。每种索引类型都有其特定的优势,适当地使用它们可以为数据库操作带来显著的性能提升。
519 3
|
JavaScript jenkins Devops
【DevOps】jekinsBuild step ‘Execute shell‘ marked build as failure
【DevOps】jekinsBuild step ‘Execute shell‘ marked build as failure
1616 1