我们先来看看当前城市的事务器中存放了什么:
这里我添加了一个用户自定义变量。什么作用呢,就是后面接口中只要接口地址有所改动,我直接更改这里就ok了。 不需要进入到每一个请求中一个个更改。
引用的写法,${变量},这里还是比较易懂的。这里我们可以做一个断言。
断言这里需要说明的是,挑关键的断言,别整很多字段断言,如果数据是可变的,那就没回都需要更改。这里我断言了name跟id,这两个对应的,所以我直接加进来了。id我给了一个错误的,我们来看看。
这里的提示是自己写的,在响应断言的下面有一个自定义提示信息。不过不建议写,因为哪里错了它会自动告诉你是id=12了。
来看看正则,我提取了id,因为下一个接口就是获取id的城市的信息,所以我就写了提取,正好一起做个解释,你们大可写其他的id,每个人获取的id不一样,你也可以拿到接口文档把第一个HTTP参数改成获取热门城市。
Java请求我是拿来打印获取内容的。
看好这里的写法,是把提取的变量id加入了哟,并且下面做了跟上面一样的响应断言。
如果在这里需要压测。提供一下个人思路,添加一个循环控制器,在下面接入这两个事务器其中一个,接入几个添加几个循环控制器看需求。然后写csv文件读取,或者随机值id读取哟。
我么接着写,搜索地址,这里我在用户自定义中新增了一个变量,因为路由变了:
地址随便写了一个,主要是用于后面的经纬度。这一接口可以获取到。
接下来我们根据拿到的经纬度进行详细的定位。用正则提取出来用于发起请求
下面的请求我用到了JSON断言,这里用于介绍断言,跟楼上的断言自行选择就好。
这里的提取值跟响应的值对应哦,别搞混了,看看:
提取后还需要添加一个断言设置,这一项其实在此处就显的有些繁琐了。
来看看结果如何是否都能跑通:
对于不同的接口且关系不大的接口,我们可以另起一个模块来写,如下,有一个食品分类的接口,跟前面的不搭边,我们可以另起一个模块控制器来进行控制:
这里需要注意的是,模块控制器中必须选中新增的测试片段,否则无法跑哦:
最后我们再来添加一个接口,查询经纬度周围的商家信息:
上述的limit的是只展示一家商品信息。
最后我们在把循环控制器添加上,设置好线程数,循环次数来跑一遍。
线程组里线程数一百,循环5次,循环控制器里面再次循环5次,来看看结果。
这里的异常率跟定位有一定的关系,定位不准确导致的。我们没有控制它的吞吐量,有想法的朋友可以自己添加一下。另外这里循环控制器跟事务控制器调换一下顺序我个人觉得更好一些。将循环控制器写在事务控制器中来进行循环控制。
这里样本数量不正确,是因为我没跑完就暂停了。
压测
==
最后,什么是压力测试?
压力测试分两种场景:一种是单场景,压一个接口的;第二种是混合场景,多个有关联的接口。压测时间,一般场景都运行10-15分钟。如果是疲劳测试,可以压一天或一周,根据实际情况来定。
压测任务需求
压测前要明确压测功能和压测指标,一般需要确定的几个问题:
-
固定接口参数进行压测还是进行接口参数随机化压测?
-
要求支持多少并发数?
-
TPS(每秒钟处理事务数)目标多少?响应时间要达到多少?
-
压服务器名称还是压服务器IP,一般都是压测指定的服务器
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!