要使用Jmeter进行接口测试,掌握一些核心功能就够了。就是去做。
没有必要使用所有功能。 从掌握进入行业的核心能力开始,然后根据自己的工作需求和职业规划来学习更多内容。 本文假设之前的接口测试框架(测试计划--->线程组--->请求--->视图)就是这个意思。 结果树)接下来,我们来介绍一下您需要掌握的一些核心功能,力争在最短的时间内取得最大的结果。
在上一篇文章中我说过,使用Jmeter进行接口测试的核心是单个接口测试的参数化以及相关接口测试的参数传递。 本文将介绍这两点。 专注。 另外,由于测试过程涉及到连接数据库和检查执行结果,因此我们还会根据需要介绍使用Jmeter进行数据库连接和断言。
1.Jmeter核心功能的参数化
所谓的参数化其实和Python函数是一样的。 搭建框架模型,用变量替换各种数据,最后将一批数据传递给变量进行测试并反馈结果。 参数化主要用于批量执行请求的场景。 比如要添加50条数据,手动多次就太慢了。 执行流程和框架是统一的,但数据不同。 在这种情况下,可以使用参数化来提高效率。
在 Jmeter 中有四种方法可以实现您的参数化需求,最常用的两种是 CSV 和函数。 本文仅介绍CSV。 所谓的CSV其实是Jmeter的一个组件,用来实现的。由于它是参数化的,所以下面解释它的用法。
作为示例,我们添加 50 条数据。 跑步的理念是什么? 还记得上一篇文章介绍的接口测试框架吗?测试计划--->线程组--->请求--[k4 ]>显示结果树。
如果你想实现这个需求,你仍然应该遵循这个框架,但是你需要在线程组下添加一个CSV组件。 全称是CSV Data Set Config,配置路径为Thread Group--->Configuration Element--->CSV Data Set Config。 要确定是否需要使用 http info 标头管理器,请按照接口列表查看是否需要进行 content-type、charset 等设置。
配置完CSV组件后,你会看到这样的界面,如上图所示。 上面红框是名字和评论,没什么好介绍的。 注意下面的红框。 此框包含更多注释。
看文件名,会导入一个准备存储50条数据的txt文件。 这里有一个问题:我需要在文件的第一行添加字段名称吗?可以,可以,可以。 我的建议是不要在文件中设置字段名称。 因此,在下面的红色框中将忽略第一行选择为 false。 文件编码是指导入文件的编码格式。 通常选择utf-8。 那么如果你的txt文件不是UTF-8该怎么办呢?
编码不正确可能会导致乱码。 因此,您需要确保您的编码方法是正确的。 txt 文件不是 utf-8 编码,可以使用 notepad++ 将文件的编码更改为 utf-8。 不要忘记将其保存在这里。
下一步是变量名称。 即文档中的字段在这里设置,后面引用这里变量的时候使用变量名。 所以最好不要乱搞另外,请小心使用逗号分隔英文状态条目。 忽略第一行的选项。 如上所述,请接受默认值。
分隔符要根据txt文件设置。 如果txt文件中相同数据的不同字段之间用逗号分隔,则此处输入逗号即可。 注意正确的中英文输入法。 您可以将以下设置保留为默认值。 txt文档中,注意不要给数据加引号。
请稍等。 现在我们正在讨论如何设置 CSV,那么如何使用它并对其进行参数化呢?不用担心。 接下来介绍一下如何参数化。 还记得上面提到的变量名吗?这里的变量名对应的是txt文件中每N条数据的每个字段。 所以你所要做的就是在这里调用变量名并设置线程组中的循环次数。
设置循环计数非常简单,只需更改循环计数即可。 那么如何引用变量名呢?引用的规则是什么?
在Jmeter中,参数化引用的形式为${参数名},例如${apart_id},它由美元符号和大括号,指大括号内的配置参数。 。
例如接口列表指定请求体中传入的数据格式为json格式,例如:
接下来,学习如何引用变量。 将上图中的代码粘贴到文本中。 填写界面中列出的其他方法并设置所需的值。 只需将 T01、test Student 和其他值替换为 CSV 中设置的变量即可。 另一种格式是美元符号和大括号的组合,您可以在大括号内键入配置的变量。 请注意不要省略外部双引号。 这与Python不同。
输入变量完成参数化。 事实上,在正常操作中,这个顺序是相反的。 通常,首先构建测试框架(这是上面介绍的最后一步)。 然后设计测试用例并保存在txt文档中,然后根据测试框架的需求创建测试用例。设置 CSV 的参数。 这意味着整个过程一次完成一个,但顺序并不重要,只要完成需求并完成测试任务即可。
2、Jmeter核心功能的参数传递(关联)
所谓的参数传递(关联)其实就是多个接口的组合。即,表示如何传递上一个接口中获取到的变量的值。 自动传递到下一个界面。 实现的概念其实就是设置变量、给变量赋值、引用变量的过程。 现在我们明白了思路,那么我们如何执行呢?
如果我们把一个请求看成一个任务,那么我们需要在任务之前做一定的准备工作,在任务之后进行一定的后处理。一种需要。 传递参数的部分需要进行后处理,即提取任务完成后获得的值并传递给另一个任务。 在Jmeter中,后处理组件集中在后处理器中,如下图所示。
我们常用两个:xpath提取器和正则表达式提取器。 下面我们就详细的讲一下如何使用。 首先,我们为当前请求添加一个 xpath 提取器。
我不会解释基础知识。 请务必选中第一个红色框,表示当前正在处理的内容。 html 或 xml 格式的数据。 接下来,第二个红色框需要一些解释。 所谓引用名称实际上是一个命名变量,与参数化过程中的变量名称相同。 xpath 查询基于 xpath 提取表达式。
这里简单介绍一下xpath语法(主要是/、//、[]、@)。 百度搜索xpath语法就可以找到。 使用xpath的场景是xml或html格式的数据。 在匹配列中,- 1 代表全部,0 代表随机,1 代表第一个匹配,2 代表第二个匹配,3 代表第三个匹配 代表与...
找到了吗? 该变量现在有了名称。值也由xpath提取表达式分配,只要用引号括起来即可。 引用方法与参数化过程中的引用方法相同。 即,使用美元符号、大括号,并在大括号内的引号中键入变量名称。
你觉得怎么样? 你不觉得这很简单吗? 事实上,虽然Jmeter这个软件看起来很大,但是一旦理解了它运行的进程的逻辑,操作起来就非常容易了。
引入xpath提取器实现参数转发后,我们发现使用正则表达式提取器实现参数转发的过程是类似的。 给变量命名,用正则表达式提取值,赋给变量,需要引用时再引用。 使用相同的方法将正则表达式提取器添加到当前请求。 结果界面将如下所示:
其他由于类似,这里不再介绍。 重点还是红框内的选项。 可以看到,红框中的引用名称、正则表达式、匹配数、默认值等与xpath中的类似,所以这里我们只关注正则表达式和模板。
正则表达式主要使用+、.、*、?四种符号。 在? 这是否意味着右侧与第一个结果匹配而不添加? 将数字右侧与符合您条件的最后一个结果相匹配。 + 号代表一个或多个匹配项。 接下来,用括号中的正则表达式将要提取的内容括起来。 表达式模板如下所示:prefixidentification() suffixidentification。 该模板使用 number$。 例如$1$代表所有值,$0$代表随机值。
看起来很简单,但是当编写正则表达式和xpath表达式时就变得更加复杂,但这不是Jmeter的问题,而是xpath和regex的问题。 只需一点时间就可以完成。 那么什么时候应该使用xpath,什么时候应该使用正则表达式呢?
一般情况下,你想提取页面内元素的属性值,那么可以考虑使用xpath。 如果您想提取其他内容,我们建议使用正则表达式。 从上图中可以看到,除了这两个提取器之外,还有很多。 实际使用的逻辑如下它们相似,只是某些赋值变量的表达式不同。 如果您需要使用它,只需复制它即可。
至此,Jmeter中最重要的单一接口测试参数化以及相关接口测试数据传递就已经介绍完了。 你学过吗? 当然,这些都是比较基础的用途。 重要的是学会内部逻辑,其他的都涵盖了。 接下来我们将介绍如何连接数据库并介绍断言。
3. Jmeter的核心特性是直接连接数据库。
引入数据库连接的原因是为了使用数据。这是因为您可能需要使用运行测试。 应该理解,因为它是可比的。 当然,只要记住步骤和注意事项,连接操作就非常容易了。
第一步:首先加载数据库驱动。 还记得我所说的在测试计划中将目录或 jar 包添加到类路径中吗?这就是我们的目的。
您必须自行下载此软件包。 您可以在百度搜索JDBC驱动包并下载合适的包。 下载后,可以从上图中红框内的查看功能中添加。
第2步:添加JDBC连接配置。 第一步是加载驱动程序,但还需要连接。 我们将使用 Jmeter 的一个名为 JDBC 连接配置的组件。 根据您的测试计划逐步选择并添加它们,如下图所示。
添加后,您将看到这样的界面: 这意味着您需要设置它。
由于屏幕空间限制,没有完整的截图。 下面省略其中一些。 我这里列出了参数的含义,大家可以自己比较一下:
变量名:数据库池名称[在发出 JDBC 请求时用引号引起来];
数据库 URL :jdbc:mysql:C://... (jdbc:这是通过jdbc驱动连接数据库的固定格式,大多数公司都使用mysql,所以我们这里使用mysql。其他数据库都差不多,是的,mysql :后面是数据库地址,这里需要注意的是,Jmeter是用Java开发的,/是针对Java的,这意味着路径需要两个反斜杠来表示转义字符。
JDBC驱动类。 :您的选择。
用户名:用于连接的数据库的用户名
密码:数据库密码
是,如果配置正确。 ,可以在运行时连接数据库,创建SQL命令来查询数据库,本节主要介绍这个请求与数据库的配合。基于线程组,您将得到如下所示的界面,但需要一些配置。
红色框1,从上到下输入您添加的变量名称,如果选中,则选择“更新”、“删除”或“插入”,选择“更新”。红框4中的变量名定义了将数据库返回的值赋给这个变量,这里有一些参数化和关联的基础知识应该很容易理解。
在某些情况下,返回数据库的值可能有很多,但是它们是如何存储在变量中的呢?存储格式如下。 变量名_N,其中N代表返回的第N个结果。 率先如果使用,请将变量名称 _N 括在直接引号中。 那么如果忘记了该怎么办呢? 事实上,您还可以添加调试采样器并查看返回的结果。
这里介绍了如何直接连接数据库。 接下来介绍一些关于断言的知识。 所谓断言,就是判断请求执行的结果是否与预期结果相符的判断。
4. Jmeter 核心功能断言
老实说,我觉得 Jmeter 的断言比 postman 的断言更容易使用。 Jmeter中常用的断言形式有响应断言(比如返回的状态码是否为200、返回的文本是否有XXX等)、大小断言(主要是返回的数据是否存在)、持续时间断言,断言组件有很多,如下图所示。
但实际上,只有几个组件。 它很常用并且非常容易使用。 。 这里我就不介绍了。 如果有时间我会再介绍一次。
至此,您已经了解了Jmeter基本接口测试流程中使用的核心功能和组件。 别忘了点赞、收藏、关注~
最后,向每一位认真阅读我文章的人表示感谢。 考虑到粉丝数量和关注度的不断增加,礼貌始终是必要的。 ,价值不大,但如果有的话,可以直接领取:
这些资料对于【软件】朋友来说是最全面的,一定要全面。 测试】一个完整的战备仓库。 这个仓库也陪伴了数万名测试工程师走过了最艰难的旅程。 也希望对你有帮助!
我的QQ技术交流群(技术交流和资源共享,无广告)
自己加个群也可以。 编号:310357728 群里的免费资料是作者10多年测试生涯的精华。 您还可以与同行业的专家交流技能。
如果它对您有任何帮助,请“喜欢”它。”这是小编最大的创作动机。 下一篇文章见
?好文章推荐
在小公司工作了2年,我只认真对待了5件事没在做,现在已经成功拿到兼职offer了
到了字节跳动,才发现原来有这么多年薪的测试工程师收入30万日元我不知道。
北京一名35岁程序员失业,悲痛欲绝。 “编程是不可能的,我要卖煎饼养家糊口~
强>
29 换工作时用的软件可以测试吗一个人值得信赖的旅程。
我们也是IT行业,测试和开发的薪资差别确实很大。 /p>
评论前必须登录!
注册