Jmeter
进程和线程:
一个进程可以包含多个线程组,一个线程组可以包含多个线程。
并发执行和顺序执行:
setup线程组:最优先执行的线程组
tearDown线程组:最后执行的线程组
四种方式参数化:
1、用户定义的变量
2、CSV数据文件设置
3、用户参数
4、函数
测试计划TestPlan:
代表一个测试计划,使用 JMeter 进行测试的起点,它是其它测试元件的容器。
线程组ThreadGroup:
代表一个要测试的场景,可设置一定数量的并发用户,它可以用来模拟并发用户并发送请求。其中的每个线程模拟一个用户。每个线程均独立运行测试计划的内容。因此,线程数常用来模拟并发用户访问。自动化或接口测试是1个线程即可,性能测试时是多个线程数
线程组主要包含4个参数:线程数、加压时长(Ramp-Up Period)、循环次数、调度器(定时任务)
线程数:
虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
加压时长(Ramp-up period): 设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 (相当于LR的VUG的迭代次数) 。
如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
same user on each iteration:每次迭代使用相同的线程
Delay Thread creation until needed:如果勾选了此选项,那么线程只会在合适的需要用到的时候创建
调度器:加压时间
ramp-up:操作系统为虚拟用户分配内存和cpu花费的时间,50个用户1秒(取决于计算机的硬件性能)
程序主要是调用硬件来完成任务,软件调用硬件
CPU工作是串行
json:
JSON: JavaScript Object Notation(JavaScript 对象表示法)
JSON 是存储和交换文本信息的语法,类似 XML。
JSON 比 XML 更小、更快,更易解析。
JSON嵌套:分为两种,一个是花括号里面有花括号, 另外一个是花括号里面有中括号。
{ "sites": [ { "name":"菜鸟教程" , "url":"www.runoob.com" }, { "name":"google" , "url":"www.google.com" }, { "name":"微博" , "url":"www.weibo.com" } ] }
花括号就用点 key1.key2.
中括号 key[xx].key[xx]