注:
复杂的测试案例都是在这个简单的测试案例上进行扩展
一个子系统建议放在同一个测试计划中,流程测试可以通过线程组区分,便于设定不同的测试数据个数。比较独立的接口,可以统一放在线程组内,顺序完成测试。
流程性接口测试:如果要测试的接口可以组成一个流程,执行顺序添加多个http请求的sampler,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性。
开发接口测试案例的整体方案:
第一步:分析出测试需求,拿到开发提供的接口说明文档;
第二步:从接口说明文档中设计接口测试用例,包括详细的入参、出参数据,以及明确的格式和检查点。
第三步:和开发一起评审接口测试用例
第四步:结合开发库,准备接口测试案例中的入参数据和出参数据,并整理成csv格式的文件。
第五步:结合接口测试用例和csv格式的数据文档,做接口自动化开发。
接口自动化适用场景
测试开发接口用例,开发自测
回归测试:开发自测通过后纳入回归测试中,配置到持续集成平台自动运行。
jMeter工具设计之初是用于性能测试的,它在实现对接口的调用方面已经做的比较成熟,本次使用jMeter工具实现http接口的测试。
添加线程组):
线程组主要包含三个参数:线程数、准备时长(Ramp-UpPeriod(inseconds))、循环次数。
线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为20,准备时长为10,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
循环次数:每个线程发送请求的次数。如果线程数为20,循环次数为100,那么每个线程发送100次请求。总请求数为20*100=2000。如果勾选了“永远”,那么所有线程会一直发送请求,一直到选择停止运行脚本。
添加httpcookie管理器:
添加HTTP请求默认值:当被测系统有唯一的访问域名和端口时,此组件很好用;填写被测系统的域名和端口,以及具体的协议类型。线程组里面的所有sampler的httprequest可默认此设置。
添加httpRequest:对于jMeter而言,sampler取样器是与服务器交互的单元,一个取样器通常进行三部分的工作,向服务器发送请求;记录服务器的响应数据;记录相应时间信息。
一个HTTP请求的配置参数介绍如下:
名称:标识一个取样器,一般建议适用有意义的名字,如接口名称。
注释:仅用户记录注释信息。
服务器名称或IP:HTTP请求发送的目标服务器名称和IP地址,可以取用户定义的变量$(host)
端口:目标服务器端口号,可以取用户定义的变量$(port)
协议:向目标服务器发送的HTTP请求时的协议,可以是http或https
方法:发送HTTP请求的方法,包括GET,POST,HEAD,PUT,OPTIONS,TRACE,DELETE等
Contentencoding:内容编码方式,默认iso885可以设置UTF-8
路径:目标URL路径
添加响应断言:设置检查点,添加对响应结果的正则表达式判断即可。
添加监听器:常用形结果、查看结果树、聚合报告,方便查看运行后的结果。
查看结果树:可以定义返回结果的排版,如果JSON格式。
查看聚合报告:
Label:显示jMeter的每个element都有一个Name属性
#Samples:表示这次测试中一共发出了多少请求,如模拟10个用户,每个用户循环10次,这里就显示100
Average:平均响应时间--默认情况下是单个request的平均响应时间,当使用了Transactioncontroller时也可以以Transaction为单位显示平均响应时间。
Median:中位数,也就是50%用户的响应时间
0%Line:90%用户的响应时间。
Min:最小响应时间
Max:最大响应时间
Error%:本次测试出现的错误的请求数量/请求的总数
Throughtput:吞吐量---默认情况下表示每秒的请求数,当使用了TransactionController时,可以表示类似Loadrunner的Transactionpersecond数。
KB/Sec:每秒从服务器接收到的数据量,相当于Loadrunner中的Throughtput/Sec
添加用户定义的变量
文章为作者独立观点,不代表股票交易接口观点