python接口自动化(十九)--Json 数据处理---实战(详解)

news2024/11/19 17:43:52

简介

  上一篇说了关于json数据处理,是为了断言方便,这篇就带各位小伙伴实战一下。首先捋一下思路,然后根据思路一步一步的去实现和实战,不要一开始就盲目的动手和无头苍蝇一样到处乱撞,撞得头破血流后而放弃了。不仅什么没学习

到,自己的自信心都受到打击了,自己都怀疑自己。其实你是最棒的,天生我材必有用,好了废话不说,进入实战——以查看快递物流接口为例。

  大致流程步骤:web页面操作—>抓包看参数和url—>代码模拟接口请求—>取到接口返回结果—>断言

 web页面操作

1、浏览器输入快递物流查询url,输入快递单号,点击“查询”

如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a

抓包看参数和url

1、点击“查询”,fiddler抓包,查看url和参数

 代码模拟接口请求

 

取到接口返回结果

 

断言

代码及运行结果

参考代码

 1 # coding:utf-8
 2 import requests
 3 url ="http://www.kuaidi100.com/query?type=annengwuliu&postid=300240694004&temp=0.5964149534969456&phone="
 4 headers = {
 5     "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
 6 } # get 方法加个 User-Agent 就可以了
 7 s = requests.session()
 8 r = s.get(url, headers=headers,verify=False)
 9 result = r.json()
10 print(result)
11 data = result['data'] # 获取 data 里面内容
12 print (data)
13 print (data[0]) # 获取 data 里最上面有个
14 get_result = data[0]['context'] # 获取已签收状态
15 print (get_result)
16 
17 #进行断言
18 if u"已签收" in get_result:
19  print ("快递单已签收成功")
20 else:
21  print ("未签收")

小结

  各位小伙伴,看到了,断言就是这么简单,其实和你写的测试用例差不多,将预期与实际结果进行对比,只不过是用代码体现出来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/726448.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

模块联邦实践

在聊模块联邦之前,我们先了解下在多个项目下,前端模块如何复用的 跨项目模块复用方案 1、npm 包包管理工具对于前端应用来说不可或缺,我们可以将模块上传到 npm 包,在需要的项目中引入,以此来复用一些公用模块。 2、mo…

基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密

当前人工智能领域,最热门的无疑是以ChatGPT为代表的各种“新贵”大模型,它们高高在上,让你无法触及。但在人们的日常生活中,实际应用需求最大的还是以Yolo模型为代表的目标检测“豪强”,它们每天都在以各种方式落地、应…

javascript匿名函数之立即调用函数

今天在看youtube的前端代码时发现了一个很奇怪的写法,从来没见过,代码如下: (function(e, c, l, f, g, h, k) {var d window;d.getInitialData function() {var b window;b.ytcsi && b.ytcsi.tick("pr", null, "&…

TensorFlow基础和入门案例

TensorFlow简介 TensorFlow是目前主流深度学习框架之一,其库中几乎包含了所有机器学习和深度学习相关的辅助函数和封装类,官方文档如下图所示。在其框架下做各种神经网络算法的开发可以极大减轻工作量,在入门阶段可以不需要深入理解相关优化…

spring拦截器参数及多拦截器执行顺序讲解

1.拦截器中的参数 2.多拦截器执行顺序 如果全部返回true,则按照流程全部执行 如果3返回false,123的preHandler会执行,123的postHandler都不会执行,但是return为true的2和1的after会执行 如果2返回false 12的preHandler会执行 pos…

sql 模糊查询与查询时间范围 起止时间

上代码 <select id"page" resultType"com.sky.entity.Orders">select * from orders<where><if test"number!null and number!">and number like concat(%,#{number},%)</if><if test"phone!null and phone!&q…

选择排序、归并排序、快速排序

1.选择排序 选择排序算法的实现思路有点类似插入排序&#xff0c;也分已排序区间和未排序区间。但是选择排序每次会从未排序区间中找到最小的元素&#xff0c;将其放到已排序区间的末尾。 Java代码实现如下。 ps&#xff1a;选择排序的最好情况时间复杂度、最坏情况和平均情况…

vue子组件监听不到父组件数据变化;子组件获取不到父组件的异步数据

当父子组件嵌套使用时created 和mounted 生命周期的执行顺序是父created -> 子created -> 子mounted -> 父mounted&#xff0c;但是这只是针对同步代码&#xff0c;当生命周期中有异步接口时&#xff0c;那么就会变成父created未执行完 -> 子created -> 子mount…

web安全php基础_魔术常量__FUNCTION__与__METHOD__的区别

PHP 魔术常量 PHP 向它运行的任何脚本提供了大量的预定义常量。 不过很多常量都是由不同的扩展库定义的&#xff0c;只有在加载了这些扩展库时才会出现&#xff0c;或者动态加载后&#xff0c;或者在编译时已经包括进去了。 有八个魔术常量它们的值随着它们在代码中的位置改…

安装Pytorch及配置Pycharm

PyTorch是一个基于Torch的Python开源机器学习库&#xff0c;用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发&#xff0c;不仅能够 实现强大的GPU加速&#xff0c;同时还支持动态神经网络&#xff0c;这一点是现在很多主流框架如TensorFlow都不支持的。 本文…

Service Computing Frontier Technology Experiment

任务说明 实验算法 空间数据索引RTree&#xff08;R树&#xff09;完全解析及Java实现 - 佳佳牛 - 博客园 (cnblogs.com) SFS 打开堆文件 t相当于一个指针 当指针指到不为空的时候 如果窗口未被占用那么 如果窗口是满的话那么代表完成 如果窗口没有满的话 把他加到窗口上&a…

k8s 第一篇 基础知识

一 k8s 1.1 概念 k8s 是一个能让应用部署到容器中&#xff0c;实现自动部署和管理更加高效 自能化的平台。 也就是说通过k8s&#xff0c;能够进行应用的自动化部署和扩容。 1.2 集群的架构流程 1.3 k8s的核心概念 1.4 k8s 集群规划 从第6集开始看

【分立元件】理解电阻

如果强行将某电压加在电子器件上&#xff0c;那么器件上被迫流过的电流是不可控的&#xff0c;电流具体是多少&#xff0c;是由器件本身的性质决定的。 比如同样的电压加载在导体和绝缘体两端&#xff0c;那么一般流过导体的电流会是大于流过绝缘体的。但要是超高电压下绝缘体…

单点登录SSO==MAXKEY

1-下载安装包安装启动 2-打开教程&#xff0c;里面说的很详细了 3- 测试 不想从这点进去也可以直接匿名打开个窗口直接访问 http://oauth.demo.maxkey.top:9521/demo-oauth/oauth20index.jsp 也会跳转到登录页面&#xff0c;输入账号密码后登录成功 乱输密码的话登录不成功还…

【算法设计与分析】素数测试问题——设计一个拉斯维加斯算法,对于给定的正整数,判断其是否为素数。

目录 一、问题描述二、分析三、运行结果四、代码 一、问题描述 试设计一个素数测试的偏真蒙特卡罗算法&#xff0c;对于测试的整数n&#xff0c;所述算法是一个关于logn的多项式时间算法。结合教材中素数测试的偏假蒙特卡罗算法&#xff0c;设计一个素数测试的拉斯维加斯算法。…

盛最多水的容器(力扣)双指针 JAVA

给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。 输入&…

Tomcat安装配置及其出错的解决方法

文章目录 一、安装二、进行配置三、解决问题四、验证 一、安装 官网链接: https://tomcat.apache.org/ 1.选择 A r c h i v e s \color{red}{Archives} Archives 2.选择 T o m c a t \color{red}{Tomcat} Tomcat版本 3.在对应的版本中选择相对应的小版本 点击 b i n \color…

海盗船DDR5版本号VER命名规则

从华硕、技嘉、微星的内存QVL中可总结出如下规律 海盗船DDR5版本号命名规则 第一位数字 颗粒厂商 第二位数字 对应产品类型 第三位数字 DIE数 3 美光 01 A 4 三星 43 传统内存 02 B 5 海力士 53 非传统内存 03 C 04 D 05 E 8 …

JAVA线程池分析实现

1、定义线程池 /*** 使用给定的初始参数创建新的 ThreadPoolExecutor对象&#xff0c;就创建了一个线程池* param corePoolSize - 要保留在池中的线程数&#xff0c;即使它们处于空闲状态&#xff0c;若果allowCoreThreadTimeOut设置为ture&#xff0c;那么核心线程在keepAliv…

整理——xilinx FPGA 在线升级

一&#xff1a;xilinx FPGA 在线升级方案&#xff1a;&#xff08;系统搭建&#xff1a;MicroBlaze软核处理器&#xff0c;uart控制器&#xff0c;Axi-lite-user用户通信接口&#xff0c;MIG DDR3控制器&#xff0c;中断控制器等&#xff0c;以太网控制器&#xff09; 1.跑一个…