一、http协议补充
-
http的请求方法常用有两种,get和post
主要区别如下:
-
协议类型http和https的区别
-
状态响应码
这个阶段,知道即可,不做深入了解。
二、Jmeter响应断言
Jmeter的断言很多,我们先说一下响应断言。
一个http请求发出去,如何判断他是否执行成功呢。我们可以通过检查服务器响应数据,是否返回预期想要的数据,如果是,判断任务成功,反之任务失败。一次测试几十,几百条的测试用例,每一条独个去看效率多么低下。所以,要用到响应断言。
-
选中一个取样器:添加-断言-响应断言
apply to :像单个服务器发请求,选择main sample only即可。
要测试的响应字段:从我们的响应文本里进行校验,故选择响应文本。
匹配规则:勾选“包括”,意味着只要相应数据中包含要校验的字段,任务就算成功。
要测试的模式:即需要校验的数据值。 -
之所以“要测试的模式”选的是“学生查询”的字样,是因为登录成功后跳转到的页面有“学生查询”的字样,故把它作为登录成功的校验字段。
-
如果账号密码不正确,就会登录失败,登录失败还是停留在登录页面。断言的校验字段还是学生查询,就会显示红色。
- 一个http请求,就是一条测试用例,有步骤,还要有预期结果,断言就是设置预期结果,与预期结果一致就是绿色,与预期结果不一致就是红色。这样,就能对于不一致的结果一目了然。
三、Jmeter参数化
- 用户自定义变量
(1)固定值
- 添加方法:添加-配置元件-用户自定义变量。
-
我们可以从察看结果树里看到post data。把用户名、密码、验证码都设置为变量。
-
设置好变量名和变量值之后,就可以在http请求的body data里面用${变量名}调用变量
(2)随机函数生成
- 上面的方法只能是固定值的变量,但是我们经常会需要一些不能重复的数据,比如测试注册接口时,只能使用一次,再次使用时会因用户名已被注册了而报错。
-
生成方法:选项-函数助手对话框-RandomString(随机字符函数)
-
复制生成的函数后,修改相应的变量值
- 之后每跑一次,用户名都随机生成一个符合要求的字符串。
-
如果用户自定义变量放在线程组之上,那作用于全局,如果放在线程组内,作用于局部(类似于全局变量、局部变量)
- 配置元件(CSV Data Set Config)
CSV Data Set Config被用来从文件中读取数据,并将它们分割存储到变量中,适合处理多变量。如:登录,在文本文档内把用户名和密码参数化,执行操作时,会自动循环读取文本里的用户名和密码。
- 新建一个CSV文档(可用excel,最后另存为.CSV文件)
-
添加-配置元件-CSV Data Set Config
-
按CSV的变量名修改
-
响应断言也改为变量形式
四、循环
使用上述配置元件进行参数化后,我们看到无论写了多少条,它只跑了第一条,所以这里要讲到循环。
- 循环控制器
-
添加-逻辑控制器-循环控制器
-
把http请求和CSV配置元件放在循环控制器内部
-
修改循环次数,因为我们CSV文件只写了两条,所以我填了循环次数是2,两条用例各跑一次。
-
察看结果树
第一条:
第二条:
-
线程组循环
暂时未应用,简单一提。整个线程组进行循环。
五、调试工具:Debug Sampler
使用Jmeter开发脚本时,难免需要调试,这时可以使用Jmeter的Debug Sampler。
思考: