apache jmeter(压力(lì)测试工具)是一(yī)款(kuǎn)使用Java开发的,开源免费(fèi)的,测试(shì)工具, 主要用来做功能(néng)测试和(hé)性能测试(压(yā)力测试/负载测试),而且用Jmeter 来测试 Restful API, 非常好用。
如果你(nǐ)用Jmeter去对Web进行功能测试,或者性能测试。 你(nǐ)必须熟练HTTP协议,才能学好Jmeter。 否则你很难理解Jmeter中(zhōng)得概念(niàn)。
解压后, 运行(háng) “bin/jmeter.bat”
Jmeter 是支(zhī)持中(zhōng)文的, 启动Jmeter 后, 点击 Options -> Choose Language 来选择语言
目标: 获取城市的(de)天气数据:
第一步(bù): 发送request 获取(qǔ)城市的城市(shì)代号
http://toy1.weather.com.cn/search?cityname=上(shàng)海
从这个请求的(de)response 中获取到上海的城市代码(mǎ). 比如:
上海的地区代(dài)码是101020100
上海(hǎi)动物园(yuán)的(de)地区代码是: 10102010016A
第(dì)二步(bù): 发送request 到: http://www.weather.com.cn/weather2d/101020100.html 可(kě)以得到该城市的天(tiān)气数据
第(dì)一步: 新建一个Thread Group
必须新建一个Thread Group, jmeter的所有任(rèn)务都必须由线程处理,所有任务(wù)都必须在线程组下面创建。
第二(èr)步:新建一个 HTTP Request
比如我要发(fā)送一个Get 方法的(de)http 请求: http://toy1.weather.com.cn/search?cityname=上海(hǎi)
可以按照下图这么填
第三步 添加HTTP Head Manager
选中上一步新(xīn)建的HTTP request. 右键,新建一(yī)个Http Header manager. 添加(jiā)一个header
第四步: 添(tiān)加View Results Tree
View Results Tree 是用来看(kàn)运行的(de)结(jié)果的
第(dì)五步(bù):运(yùn)行测试,查看结果
到(dào)这里。 我们已经成功运行起来(lái)了。
第六(liù)步:添加Assertion和Assert Results
选择HTTP Request, 右键 Add-> Assertions -> Response Assertion. 添加 Patterns To test
然后添加一个Assetion Results 用来查(chá)看Assertion执行的结果.
选(xuǎn)中Thread Group 右键 Add -> Listener -> Assertion Results.
运行后, 如(rú)果(guǒ)HTTP Response中没有包含期(qī)待的字符串。 那(nà)么(me)test 就会Fail.
第(dì)7步: 使用(yòng)用户(hù)自定义变量
我们(men)还可以在Jmeter中定义(yì)变(biàn)量。 比如我定义一个变量叫(jiào) city. 使(shǐ)用它(tā)的时候(hòu)用 ${city}
添加一(yī)个 User Defined Variables. 选中Thread Group: 右键 Add -> Config Element -> User Defined Variables.
我(wǒ)们添加一个变量: city
然后在Http Request中使用这个(gè)变量
第八步:关联
所谓关联, 就是第(dì)二个Requst, 使用第一个(gè)Request中的数据
我们需要在第一个(gè)Http Requst 中新建一(yī)个正则表达式,把Response的值提取到变量中,提供给别的(de)Http Request 使(shǐ)用
选择(zé)第一(yī)个(gè)Http Request, 右键 Add -> Post Processors -> Regular Expresstion Extractor
现在新建第二(èr)个Http Request, 发送到: http://www.weather.com.cn/weather2d/${citycode}.html
${citycode} 中的数据, 是从(cóng)Regular Expression Extractor 中取来的
到这(zhè), 脚本就全部(bù)写好了, 运行下,看下最终(zhōng)结果
