甲方需要提供数据有效性指标;在性能测试过程只是进行来接口断言,并没去验数据库中的数据有效性; 如果通过数据库断言,这个不会加大数据库的资源消耗,从而影响到整个性能测试结果吗; 有什么参考借鉴的吗
没太明白,这里的数据有效性指的是测试出来的性能结果有效性(背后涉及设计出来的性能测试模型是否和实际场景一致、测试环境模拟度是否足够等),还是啥的有效性?你说的这个数据库断言,我理解是功能的正确性(即服务端返回成功的话,数据库确定是写入成功的,不会是假的成功),不像是有效性。
如果做数据库断言,理论上是会增大数据库的读压力的,但会影响多大这个不好评估,得看实际情况,比如这个查询复不复杂,是否命中索引、查询频率有多高等。
应该要明确一下,你表达的 “接口断言” 和 “数据库断言” 在这个上下文里具体是指什么?
我自己理解,帖主问的问题是:性能测试过程中每个请求是否需要看落库结果,来确保性能测试的逻辑正确性。
我的理解是:
性能测试断言结果其实是次要的,因为性能和功能相对独立,很多时候只要功能测试是正常的,性能理论上就不出现逻辑问题。所以一般来说功能测试通过了,性能测试基本都不关注 “结果是否正确”,因为功能测试已经给了结论。
同意楼上。
1、做性能测试过程中,要判断数据有效性,需要做两点: 1)如果接口失败返回的响应码与正常的响应码不一样,那么只要判断响应码是否与当时录制的一样即可。 2)如果接口失败返回的响响码与正常的一样,那么可以判断响应长度( 这种方式节省资源) 或判断内容(这种方式就比较消耗资源),sql 返查询等
其实你没理解提问者的意思。比如脚本中有一个事务,想测试系统允许最大:事务成功数/秒,也就是事务无异常的情况,每秒平均可以处理多少个(最大值,平均值,最小值)。这指标就是系统的事务处理能力。事务中是包含很多的请求,这些请求全部处理成功,那么这个事务就是成功的。问题来了,如判断事务中的请求都是成功的呢?对于大部分的性能测试功工具,你需要对事务中的每个请求增加检查点(也叫断言),否则性能工具无法判断这个请求是成功还是失败。LR 和 Jmeter 需要手工加内容判断的断言。奇林性能测试工具(kylinPET),响应码可以自动判断(如果事务中的请求失败时返回与录制的响应码不一样),这种情况下就不需要增加检查点,工具本身可以自动判断,否则根据需要可以增加:长度检测查、SQL 内容检测查、或响应内容检查等,这些根据你的需要增加。