将每周读书与学习相结合,可以有效地提升个人素养和知识水平。以下是一些建议,帮助您实现这一目标:1. **制定计划**: - 每周选择一本或多本书籍,涵盖不同领域,如文学、历史、科技、哲学等。 - 确定每天如早晨起床后、午休时间或睡前。2. **选择书籍**
摘要:每周读书与学习是由清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书的作者推出,分享作者多年的IT从业经历,希望对很多计算机科学技术IT类专业毕业生以及IT从业者有所帮助。 在前面的学习中,介绍了很多Jmeter的理论知识
每周读书与学习是由清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书的作者推出,分享作者多年的IT从业经历,希望对很多计算机科学技术IT类专业毕业生以及IT从业者有所帮助。
在前面的学习中,介绍了很多Jmeter的理论知识,包括Jmeter中很多不同元件的详细介绍以及每个元件的作用,本次主要从实践的角度来介绍怎么用这些元件来完成常见性能测试脚本的编写,将会介绍一些常见的性能测试脚本编写案例。
在上一次分享中,分享了JMeter性能测试脚本编写实战之如何实现用户需先登录,然后再请求别的接口,本次将继续分享JMeter性能测试脚本编写实战。
1、前一个请求返回的结果作为后一个请求的入参
在性能测试中,除了会对单个接口请求进行性能压测外,也经常会遇到一些比较复杂的场景,比如需要同时对两个不同的接口请求进行性能压测,并且前一个接口请求返回的结果需要作为后一个接口请求的入参,如下图所示就是一个实际的示例演示,这个示例是以调用http://www.nmc.cn/rest/province/ 接口获取中国每一个省份或者直辖市下有哪些具体的城市信息来作为例子进行演示的。
从上图中可以看到,由于获取每个省份或者直辖市下的具体城市信息时,需要先获取到该省份或者直辖市的代码,然后在调用http://www.nmc.cn/rest/province/ 接口时,传入对应的代码,来获取该省份或者直辖市下有哪些具体的城市信息,由于一开始并不知道每个省份或者直辖市的对应代码是啥,所以第一步需要先通过省份或者直辖市的名称来调用接口获取该省份或者直辖市对应的代码,在获取到省份或者直辖市代码后,再通过代码作为入参调用接口获取其下对应的所有的城市信息。
在理清了调用接口的先后顺序后,就可以先将所有的省份和直辖市数据作为一个参数化数据,因为在中国所有的省份和直辖市的名称是已知的,在Jmeter中,通常建议使用配置元件下的CSV 数据文件设置来进行参数化设置,如下图所示,在文件名设置中选择省份和直辖市对应的参数化数据文件的绝对路径,并且设置文件编码为utf-8,即表示通过utf-8的编码格式来读取参数化数据,避免出现乱码的情况,因为省份和直辖市名称都是中文形式的数据,如果编码格式选择不合适的话,可能会出现读取名称出现乱码的情况,在实际性能测试中,出现乱码时,通常都建议去排查下数据文件的编码格式和在Jmeter中设置的编码格式是否一致,如果不一致的话,通常就会产生乱码。在设置完文件编码后,在变量名称中设置provinceName来作为变量来存储读取到的省份或者直辖市名称。
在参数化数据文件中,需要将所有的省份和直辖市的名称写入,如下图所示。
在做完参数化设置后,就可以添加一个取样器来调用第一个接口http://www.nmc.cn/rest/province,如下图所示,该接口不需要传入任何的参数,因为直接访问该接口时,会返回所有的省份或者直辖市名称对应的代码信息,由于该接口是一次返回了所有的省份或者直辖市名称对应的代码信息,所以如果需要通过某个省份或者直辖市名称来找到对应的代码,还需要添加一个后置处理器元件,由于该接口返回的数据是JSON格式的数据,所以可以选择后置处理器下的JSON JMESPath Extractor来对返回的JSON数据进行后置处理来获取某个省份或者直辖市名称对应的代码信息,并且由于需要确保该后置处理器和该取样器进行匹配处理,所以在这里选择了逻辑控制器下的简单控制器来进行了一个单独的分组,该分组的作用就是确保JSON JMESPath Extractor这个后置处理器直接处理该取样器返回的数据。
如下所示是http://www.nmc.cn/rest/province接口返回的所有的省份或者直辖市名称对应的代码信息。
