湖南建设信息网站做手机版网站和做app差别

news/2025/10/3 21:45:40/文章来源:
湖南建设信息网站,做手机版网站和做app差别,国人原创wordpress主题排行,他达拉非片说明书接口测试虽然作为版本的一环#xff0c;但是也是有一套完整的体系#xff0c;有接口的功能测试、性能测试、安全测试#xff1b;同时#xff0c;由于接口的特性#xff0c;接口的自动化低成本高收益的#xff0c;使用一些开源工具或一些轻量级的方法#xff0c;在测试用…接口测试虽然作为版本的一环但是也是有一套完整的体系有接口的功能测试、性能测试、安全测试同时由于接口的特性接口的自动化低成本高收益的使用一些开源工具或一些轻量级的方法在测试用例开发的成本不高的情况下能去的比较好的测试效果。 开源测试工具Jmeter可以承担接口请求、结果解析和断言的工作可以作为轻量级接口自动化的实现手段对于开发能力不强或规模不大的团队也能接受。Jmeter可以在协议层实现基本的功能包括接口访问、参数化构造、返回值断言和数据库访问基本足够满足一个轻量级的接口自动化框架的功能。 我们定义一个如下的接口 入参 SearchKeys: 我亲爱的你, //用户输入的查询数据不能为空PageSize: 10,//分页的Page大小默认入参为10前端传入PageIndex: 1,//分页的PageIndex第几页前端传入OrderBy: 0,//排序条件0-销量1-价格由前端传入前端的通过单选控件实现Method: ASC//排序方式ASC-升序DESC-降序前端通过单选控件实现 返回值 {data:[{CommodityID:03445f1e-ba55-421d-80fa-1777741bb57e,CategoryID:2,CommodityName:双人床solo抽泣,Thumb:http://img4.imgtn.bdimg.com/it/u1924829949,2185178641fm27gp0.jpg,SalePrice:16.0,SaleAmount:13}],records:1,status:true,message:} 代码处理逻辑按照分页的页面和大小从Commodity表一张表中直接查询到对应数据查询结果进行实例化为Json处理后返回对应字段均存在Commodity表中对应数据如下 测试的思路为按照实现的业务逻辑取除了Thumb的字段作为断言字段并构造SQL进行查询如果查询到对应数据则证明接口返回通过。具体构造的SQL如下 SELECT* FROMCommodity WHERECommodityID 03445f1e-ba55-421d-80fa-1777741bb57d AND CategoryID 2 AND CommodityName 我亲爱的你大事不妙 AND SalePrice 13.0 AND SaleAmount 130 那么我们需要进行的工作按照顺序即为访问接口-获取返回值-解析回参-构造SQL-查询-判断结果。整个过程都能通过Jmeter进行实现上手起来也比较容易。具体操作过程如下 一.Http请求 在测试计划下新增一个线程组并在线程组下新增一个http请求 添加Http请求以后按照下图所示可以设置请求需要注意的是如果要输入协议就不要在服务器名称或IP前加http或https了否则会直接访问到http://http://上去 一般来说接口在访问的时候都需要在验证Header中的身份信息Jmeter中提供了头信息管理的功能添加-配置元件-Http请求头管理器 使用结果树查看接口返回值添加-监听器-查看结果树可以明确看到接口的返回报文、 入参 PSJmeter记录的入参会进行自动URL编码处理有需要的可以自己做URL解码即可 回参 这样我们就完成了一个基本的Http请求的访问。 二.实现参数化 想必大家注意到了我们之前在通过Http请求构造入参时对SearchKey这个入参并没有填入之前构造的参入而是使用了${Key}在Jmeter中参数的传入就是通过${参数名}的方式进行的。 一般来说我们测试过程中不一定能保证数据的稳定或需要构造多个不同的参数进行处理 很多时候需要考虑做参数化的处理一定程度上实现动态构造。Jmeter中提供了通过读取本地文件进行参数化的功能 读取配置文件中的参数在添加的http请求下添加配置元件-CSV DATA SET CONFIG 添加CSV 数据配置器后按照如下设置即可设置参数 需要调用的时候 直接使用 ${参数名} 进行调用即可。 三.使用JSON Extractor处理返回值中的Json 通常来说现在大部分的接口返回值都序列化处理成为Json格式进行返回。虽然使用正则获取返回值也可以但是Jmeter提供了一个更加方便的插件JSON Extractor处理Json。 下载插件https://jmeter-plugins.org/wiki/JSONPathExtractor/下载解压后把lib里的两个jar拷贝到jmeter的lib目录lib/ext里面的两个jar拷贝到jmeter的lib/ext目录重启jmeter即可。 我们以处理以下Json中的CommodityID为例来获得对应的值 {data:[{CommodityID:03445f1e-ba55-421d-80fa-1777741bb57e,CategoryID:2,CommodityName:双人床solo抽泣,Thumb:http://img4.imgtn.bdimg.com/it/u1924829949,2185178641fm27gp0.jpg,SalePrice:16.0,SaleAmount:13}],records:1,status:true,message:} 注意到CommodityID在Json数组中所以Json路径为data[0][CommodityID]需要添加Json数组中的索引值 。我们在Json Path Expreeions填入 $.data[0].[CommodityID],这样我们就取出了CommodityID的值在后续之后我们就可以通过${CommodityID}的方式调用取出的值。 如法炮制我们可以取出所有的断言字段。 按照之前的分析我们可以构造使用断言字段构造一条SQL访问数据库如果所有的字段都返回正确那么查询结果应该是不为空的按照如下的格式我们就可以构造出我们所需要的断言SQL了 SELECT* FROMCommodity WHERECommodityID ${CommodityID} AND CategoryID ${CategoryID} AND CommodityName ${ CommodityName } AND SalePrice ${SalePrice} AND SaleAmount ${SaleAmount} 接下来我们只需要使用Jmeter执行该SQL并对返回结果进行验证即可实现这个轻量级的接口自动化。 四.使用JDBC访问MySql Jmeter提供了JDBC的插件进行数据库访问但是在此之前我们需要下载MySql的JDBC驱动包。一般来说JDBC驱动包版本需要和数据库版本匹配否则可能因为驱动的关系导致出错。 1.在测试计划下添加导入对应的JDBC驱动包 2.添加-配置元件JDBC Connection Configuration 具体设置如下所示蓝色框线内的部分一般可以直接使用默认设置红色框线内需要我们手动填写 底部的数据库连接字符串填写如下 DataBaseURL 数据库连接字符串使用MySql的同学按照以下格式填写即可 jdbc:mysql://localhost:2000/AutoTest?useUnicodetruecharacterEncodingutf8 jdbc:mysql://数据库服务器地址:端口号/数据库名在测试过程中遇到过因为编码问题查询条件中的中文字符串不生效导致断言结果错误所以需要添加编码方式设置的与数据库本身的编码方式相同即可我使用的是UTF-8 JDBC Driver Class直接填写com.mysql.jdbc.Driver即可 UserName/Password连接数据库的账号和密码 3.使用JDBC Request进行数据库操作添加-Sampler-JDBC Request JDBC的操作比较简单我们只需要通过参数名调用设置的JDBC Connection Configuration然后输入要执行的SQL即可 添加一个查看结果树我们就能看到SQL的执行结果了 构造的SQL 查询的结果 五.使用断言验证返回结果 Jmeter提供了丰富的断言功能可以用于检查响应数据与预期是否一致可以用作接口自动化测试的结果校验。对于一次请求如果通过的话断言结果中只会打印一行请求的名称如果失败则除了请求的名称外还会有一行失败的原因不同类型的断言结果不同也可以帮助我们定位返回值错误的内容。此外一个Sampler可以添加多个断言根据你的检查需求来添加相应的断言当Sampler下所有的断言都通过了那么才算request成功。 那么针对这个用例我们可以把问题简单化既然数据库返回的查询结果查询到数据就算测试通过那么JDBC Request的返回值中是一定有我们的传入的参数的那么我们就可以直接使用基本的文本工具来进行断言的验证返回结果包含一个或几个断言字段那么就能断言测试通过了 添加-断言-响应断言响应文本中包括关键的参数即可 那么如果返回结果正确断言测试通过结果树中只有一条返回的数据 如果返回结果错误那么断言测试失败结果树中会新增一行失败的原因 我们构造一个错误的场景将返回字段中的SaleAmount销量返回为SalePrice价格那么我们的查询结果为空返回的断言结果就会是失败的因为返回值中没有包括传入的CommodityID 断言失败因为没有匹配到对应的CommodityID数据。 至此我们就使用Jmeter完成了一个轻量级的接口自动化测试的用例构造构造好的用例可以用于后续版本的回归测试。 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走

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

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

相关文章

QBXT2025S刷题 Day2

今天的题目 \(rk38\) T1 这道题想了 \(1h\) 差不多。 这道题其实可以直接转化成选一个点,把覆盖着这个点线段全部删掉,使得左右两边都有线段。 可以维护每个点被多少个区间覆盖,左面有多少个区间,右面有多少个区间…

个人主页网址

https://www.cnblogs.com/gutianle

建设项目环境影响评价公示网站wordpress添加干扰代码

数据可视化是将复杂数据转化为易于理解的图表和图形的过程,帮助我们发现趋势、关联和模式。同时数据可视化也是数字孪生的基础,本文小编带大家用最简单的话语为大家讲解怎么制作一个数据可视化大屏,接下来跟随小编的思路走起来~ 1.数据收集和…

离型剂技术支持东莞网站建设php 移动网站开发

1025. 反转链表 (25) 时间限制300 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6…

甘肃省工程建设信息官方网站宣传片拍摄构思

伺服放大器功能提升 伺服放大器MELSERVO-JET系列为进一步优化了独家控制引擎的高性能伺服放大器。 可通过与支持CC-LinK IE TSN的运动控制器的同步通信,进行高 速、高精度的运动控制。 除了旋转型伺服电机以外,还支持线性伺服电机。MR-JET-G-N1支持EtherCAT。 旋转型伺服电机 …

Vue之刷新页面会触发的生命周期函数

刷新页面时不会触发组件的 onUnmount 事件。 因为刷新页面会直接销毁整个页面的 DOM 树和内存中的组件实例,属于“强制清空”,而非组件正常从 DOM 树中卸载的流程。 而 onUnmount 的核心是“组件正常卸载(如路由切换…

深入解析:App Store 上架完整流程解析,iOS 应用发布步骤、ipa 文件上传工具、TestFlight 测试与苹果审核经验

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

傅里叶的一生

傅里叶的一生https://www.bilibili.com/video/BV1u7411s7Hi/ 傅里叶1807年发表《热的传播》论文,提出用三角函数级数表示物体温度分布,但因数学家反对延迟发表。1811年该研究获巴黎科学院大奖,1822年出版《热的解析…

Dos命令学习(新手)

打开CMD的方式Win键+R 输入cmd打开控制台 在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口 开始菜单,打开命令提示符 资源管理器的地址栏前面加上cmd路径常用Dos命令 #盘符切换:盘符+回车 #查看…

如何做外围网站的代理wordpress首页调用文章页图片

Windows 10启用Hyper-V 官网教程PowerShell 启用 Hyper-V启用 Hyper-V 角色 我们知道VMware是创建虚拟机的好工具,那Windows平台上有没有虚拟工具呢? 今天我们要讲解的就是Windows才入局的虚拟工具:Hyper-V 官网教程 https://learn.microsof…

苹果im虚拟机协议群发系统,苹果imessage推信软件,苹果iMessage自动群发协议–持续更新中...

一、电脑版虚拟机苹果系统(Mac OS)上实现imessage群发: /*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些“…

吴恩达深度学习课程一:神经网络和深度学习 第一周:深度学习简介

此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下:原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案…

实用指南:AI Agent开发平台如何设计?核心架构与工作流实战案例详解

实用指南:AI Agent开发平台如何设计?核心架构与工作流实战案例详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…

防重复提交的实现

实现防重复提交 1.按钮置灰和恢复(触发函数时应马上置灰,再执行其他逻辑,最后恢复按钮状态,否则容易在执行函数的置灰语句前再次触发函数,可以使用try-finally结构对函数进行改造) 2.前端对请求进行缓存(实现请…

建设云南省癌症中心网站wordpress 采集函数

ReactNative中升级IOS 17版本Crash解决 ReactNative中升级IOS 17版本Crash解决一、问题描述二、原因分析三、解决方案决策3.1 设置宽高为非零值3.2 使用新的UIGraphicsImageRenderer替换就版本的UIGraphicsBeginImageContext 四、可能使用到该API的三方库4.1 react-native-fast…

设计模式(C++)详解——观察者模式(Observer)(1) - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

百度百科让做网站的超链接吗wordpress登陆小工具

如何终止一个正在运行的线程? 设置状态位来终止一个正在运行的线程。可以自己实现, 也可以使用 interrupt 方法来设置这个状态位, 然后在代码中判断 isInterrupted 的返回结果来执行退出执行的逻辑。 了解 Thread 类中的 stop、interrupt 方法吗?为什么不用 stop…

Day25错误(error)与异常(exception)的简单认识

总结:错误往往比异常更加严重,是JVM引起的问题,无法通过代码捕获与媳妇 异常则是由程序员的不当操作引起的,错误则与程序员的代码无关 错误发生是一般会导致程序停止,异常取决于程序员是否对其进行处理,若被捕获…