测试开发基础(三)——Jmeter

1. Jmeter使用

1.1 接口测试分类

内部接口:被测系统各个子模块之间的接口

外部接口:被测系统调用外部的接口、系统对外提供的接口

接口测试重点:检查接口参数传递的正确性、接口功能的正确性、输出结果的正确性、异常情况的处理、权限控制、分页、调用次数的限制

1.2 接口架构设计

基于SOAP架构。基于XML规范、WebService协议,以接口地址?wad结尾

基于RPC架构。基于dubbo和thrift协议,SpringCloud微服务

基于RestFul架构。基于json规范,http协议。

RestFul规则:

接口地址:http://127.0.0.1/user,get,post,put,delete

http协议:请求头、请求行、请求正文;响应头、响应行、响应正文

1.3 接口测试工具

Jmeter+Ant+git+Jenkins

Postman+Newman+git+Jenkins

1.4 Jmeter目录介绍

backups:备份目录

bin:Jmeter启动脚本

docs:离线帮助文档

extras:存放与第三方的集成构建文件。集成Ant、Jenkins

lib目录:存放jar包

lincensce:许可证文件

1.5 Jmeter常用组件

  • 测试计划:起点,所有组件的容器

  • 线程组:代表一定数量的用户

  • 取样器:向服务器发送请求的最小单元

  • 逻辑控制器:结合取样器实现一些复杂逻辑

  • 前置处理器:请求前的工作

  • 后置处理器;请求后的工作

  • 断言:判断请求是否成功

  • 定时器:负责请求之间的延迟间隔

  • 配置元件:配置信息

  • 监听器:负责收集结果

顺序:测试计划>线程组>配置元件>前置处理器>定时器>取样器>后置处理器>断言>监听器

作用域

必须组件:测试计划、线程组、取样器

辅助组件:除了必须组件外

辅助组件作用与父组件、同级组件、同级组件的子组件

1.6 Jmeter执行接口测试

  • 拿到api文档

  • 编写接口测试用例:正例+反例

        反例:

                鉴权:空、错误、过期、次数限制

                参数:空、类型错误、长度错误、错误码覆盖

                其他:黑名单、分页。

  • 使用接口工具执行

Jmeter+Ant+Git+Jenkins实现持续集成生成测试报告。通过电子邮件发送

http: 80

https: 443

1.7 Jmeter接口关联

正则表达式实现:查看结果树选择RegExp Tester

一个请求中有多个请求器,使用正则表达式提取返回值,然后传递给下一个url的参数,在查看结果树前添加调试取样器查看结果

JsonPath实现:查看结果树选择JsonPath Tester

$.xx.xx.xx:$表示从根目录开始找

1.8 Jmeter动态参数处理

tools>函数助手对话框

文件上传可以使用java

1.9 Jmeter断言

响应文本:返回的json数据

响应代码:200,404

响应信息:OK

文本文档:返回的json数据以文本的方式判断

忽略状态:当有多个断言时,一个失败另一个成功,结果是成功

字符串:响应内容包含需要匹配的字符串,不支持正则

包含:支持正则

匹配:响应内容等于匹配字符串,支持正则

相等:支持正则

测试模式:测试的内容

1.10 Jmeter接口调试方案

通过察看结果树查看

使用调试取样器

Jmeter结合fiddler实现调试:

http默认配置>高级>代理服务器

1.11 Jmeter参数化处理

csv数据文件配置:第一行是参数,其余行是参数值

1.12 必须带请求头的接口

添加HTTP请求头配置元件

1.13 Jmeter脚本录制

测试计划>添加>非测试元件>代理服务器

1.设置端口和录制的位置

2.设置本机走代理

1.14 Bean Shell组件和语言规则

Beanshell可以用自己的语言写,也可以用java写

BeanShell内置变量和语法:

1. 打印:log.info("xxx"), info.error("xxx"), System.out.println("xxx")(在cmd中显示)
2. vars(只能在当前线程使用):变量,操作Jmeter变量,在用户自定义变量中进行定义,使用vars.get("xxx")获取值,vars.put(key, value)进行定义
3. props(跨线程):存取全局静态变量,props.get("xxx")
4. prov:获取前一个取样器返回的信息,prov.getResponseCode()
5. ctx:上下文变量,ctx.getProperties()

1.15 Jmeter执行数据库操作

1.准备jar包:mysql,oracle

方式一:在测试计划里面引用

方式二:将jar包放入Jmeter的lib目录

2.新建JDBC Connection Configuration并进行配置

3.新建JDBC Request并进行配置获取结果

4.使用BeanShell对结果进行处理(打印等)

1.16 Jmeter非GUI方式运行

1.执行JMX文件命令:jmeter

2.命令行参数:

-n # 非界面方式 
-t # 指定位置
-l # 指定生成jtl格式的结果
-e # 生成HTML报告
-o # 指定生成HTML的路径,必须是空文件夹

1.17 使用Jmeter+Ant+Jenkins实现持续集成

1.下载Ant并将bin路径添加到path中

2.需要build.xml文件,并将该文将和jmx文件放到同一个目录

3.配置全局文件jmeter.properties中的output_format为xml

4.输入命令:ant

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值