面试被问Jmeter和lordrunner有什么不同
一个免费 一个商用
会的大哥帮忙看看 小弟谢谢了
初印象
接口测试 向服务器发送请求 检查响应是否符合要求
jmeter中文化
1.修改代码文件 zh
2.新版jmeter可以opinion chooselanguage chinese 繁 简
工作流程
获取API接口文档
{API接口文档包含业务、包括接口地址、请求方式,入参、出参,token鉴权,返回格式等信息}
使用jmeter
1.新建一个测试计划 修改名称和注释
2.增加线程-线程组 线程数(多少个并发) Ramp-up()启动总时长 循环次数(次数)
3.取样器 http请求。(输入接口服务器IP和端口)协议 IP 端口 请求类型(getpostdeleteput)
4.新建其他请求http请求,一个请求一个用例。
5.监听器 断言和查看结果树。
接口测试 设计测试用例
一般考虑入参的形式变化和接口的业务逻辑 等价类 边界值 场景法
正向 接口逻辑测试 全正测试 主要看能不能用
逆向 模块接口 保证数据的安全和程序在异常情况下的逻辑的正确性而进行的测试
1.token异常 鉴权码为空 没有鉴权码 错误鉴权码 和过期鉴权码
2.其他参数的异常
3.必填项检查
4.参数的长度 类型 格式异常
5.错误码一场覆盖
6.接口有其他的关注点
6.1接口翻页 页码和页数的异常值测试
6.2数据库的增删改查 一个post接口完成后 通过列表页接口查看新的数据是否和刚才的post一样
6.3接口返回的图片地址能否打开 图片尺寸是否符合需求
6.4参数联动 检查返回两参数是否都正确
6.5列表页接口的排序值问题
6.6兼容旧的版本问题
接口测试执行中比对数据库吗
当然 返回值源于数据库 所以要进行数据库查询
为什么展开接口测试 接口测试在那个
接口在集成阶段 造介入早发现早修复成本低
接口测试非常快速 ui自动化一个10s 接口都是毫秒级
抓包工具
fiddler HTTP请求和HTTPS(安装证书)
127.0.0.1 8888
JSON数据是什么 怎么解析
轻量级数据交换格式 键值和数组构成 键值对
postman参数化
1.内建变量
2.js脚本pre=scripts
3.CSV或者json格式文件
cookie 用户预览器 (不安全 放在预览器里可以进行cookie欺骗)
session 服务器上 但是会占用性能(访问过多)
token 接口测试鉴权码 类似于通行证书
关联和postman关联
把上一个接口返回值的部分作为下一个接口的参数 让接口串联运行
方法实现
正则表达式(后置处理器 正则表达提取器)
使用设置全局变量的代码把提取出来的值保存到全局变量
在下一个接口中 使用全局变量代替要替换的静态值
jmeter是否看系统
XML文件和XML语言 不依赖操作系统 全平台
处理器
前置处理器和后置处理器
什么是前置处理器 有啥
前置处理器是在采样器执行之前发生的事情。为了在执行采样请求之前对其进行配置,或者用于更新未从响应文本中提取的变量,需要使用前处理器元件。 一些前处理器元件是:
元件执行顺序
配 前 (计) 取 后 断 监
配置原件 前置处理器 计时器 取样器 后置处理器 断言 监听树
包含 和 匹配 在正则表达中表示
包含 部分匹配 匹配 完全匹配
计时器 两个请求之间因为不会暂停 可以人为暂停 恒定 高斯随机 同步计时 均衡计时
测试片段是一种原件 除非模块控制器或包含控制器引用了测试片段 否则不会实现测试片段
Jmetet的断言
15、说明如何减少JMeter中的资源需求? ①使用非GUI模式执行测试,如 jmeter –n –t test.jmx –l test.jtl ②在加载期间,测试不使用“查看结果树”或“查看表中的结果”监听器,仅在脚本编写阶段使用它们; ③不要使用功能模式; ④与其使用大量相似的采样器,不如在循环中使用相同的采样器,并使用变量来改变采样;
执行尖峰测试 spike testing
同步用例 使用计时器 同步计时器将线程阻塞达到特定数量时 一起释放 从而造成巨大的瞬时负载
类似于并发
Jmeter中捕获身份验证窗口的脚本 用 threadgroup 在work中使用HTTP代理
Jmeter监听器 查看 汇报 聚合 后端
关于Jmeter
开源 性能负载测试
原理 创建请求 发送 返回 响应 分析 可以通过图形或表格显示的应用此程序或服务器性能
插入函数和变量 全局组件都可以
取样器 会生成采样结果 里面含有很多属性 如 响应时间 数据大小 常用采样器 http ftp jdbc
线程组 一切的开始 设置多用户 启动总时间和循环次数
常见问题
1.乱码问题 utf-8 token 正则表达式提取器提取token