使用jmeter或者postman调用post请求的接口-mac

本文介绍了如何使用JMeter和Postman对HTTP接口进行POST请求的测试。对于GET请求,可以直接在浏览器中访问并传递参数,而POST请求则需要借助专业工具。在JMeter中,创建线程组和HTTP请求,配置参数,添加监听器即可查看结果。而在Postman中,通过简洁的界面同样可以方便地发送POST请求并查看响应。

get请求的接口可以直接通过浏览器访问,传参也可以直接通过链接传递进而访问页面,

localhost:8888/getDemo?name="zhangsan"&age="18"

但是post方法的请求不能直接通过浏览器访问,可以使用jmeter或者postman来调用。

一、使用jmeter

1、打开jmeter

如果已经安装了jmeter,那直接终端里输入jmeter就可以打开了

2、先添加一个线程组

3、然后在线程组中添加一个http请求

我这个post请求的方法没有参数,所以下面的没有添加参数

这是一个带参数的post请求:

 

 4、新建一个监听器

 5、点击运行,查看调用结果

 二、使用postman

1、

 

JMeter中实现类似Postman通过raw方式调用接口的功能,可按以下步骤进行配置: ### 添加线程组 打开JMeter后,在测试计划上右键,选择“添加” -> “线程(用户)” -> “线程组”。线程组用于定义要模拟的用户数量、循环次数等参数。 ### 添加HTTP请求 在线程组上右键,选择“添加” -> “取样器” -> “HTTP请求”。在HTTP请求的配置界面中: - **协议**:填写接口使用的协议,如 `http` 或 `https`。 - **服务器名称或IP**:填写接口的域名或IP地址。 - **端口号**:填写接口的端口号,如果是默认端口(`http` 为 80,`https` 为 443),可以不填。 - **方法**:选择接口请求方法,如 `GET`、`POST` 等。 - **路径**:填写接口的具体路径。 ### 设置请求体(类似Postman的raw方式) 在HTTP请求配置界面中,切换到“Body Data” 选项卡。在这里可以输入请求体的内容,就如同在Postman使用raw方式输入请求体一样。例如,如果接口需要JSON格式的请求体,可以直接在该文本框中输入JSON数据: ```json { "key1": "value1", "key2": "value2" } ``` ### 设置请求头 如果接口需要特定的请求头信息,在线程组上右键,选择“添加” -> “配置元件” -> “HTTP信息头管理器”。在HTTP信息头管理器中添加所需的请求头,如 `Content-Type` 等。例如,如果请求体是JSON格式,需要设置 `Content-Type` 为 `application/json`。 ### 添加监听器 为了查看请求的响应结果,在线程组上右键,选择“添加” -> “监听器”,可以选择“查看结果树” 或 “聚合报告” 等监听器。“查看结果树” 可以详细查看每个请求请求信息和响应信息,“聚合报告” 可以查看请求的统计信息。 ### 运行测试 配置完成后,点击JMeter界面上的绿色三角形按钮运行测试。运行完成后,在监听器中查看请求的响应结果。 以下是一个简单的JMeter配置示例代码(使用JMeter的JMX文件格式简化展示请求部分): ```xml <?xml version="1.0" encoding="UTF-8"?> <jmeterTestPlan version="1.2" properties="5.0" jmeter="5.4.1"> <hashTree> <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true"> <stringProp name="TestPlan.comments"></stringProp> <boolProp name="TestPlan.functional_mode">false</boolProp> <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="TestPlan.user_define_classpath"></stringProp> </TestPlan> <hashTree> <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> <boolProp name="LoopController.continue_forever">false</boolProp> <stringProp name="LoopController.loops">1</stringProp> </elementProp> <stringProp name="ThreadGroup.num_threads">1</stringProp> <stringProp name="ThreadGroup.ramp_time">1</stringProp> <longProp name="ThreadGroup.start_time">1630473600000</longProp> <longProp name="ThreadGroup.end_time">1630473600000</longProp> <boolProp name="ThreadGroup.scheduler">false</boolProp> <stringProp name="ThreadGroup.duration"></stringProp> <stringProp name="ThreadGroup.delay"></stringProp> </ThreadGroup> <hashTree> <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="HTTPSampler.domain">example.com</stringProp> <stringProp name="HTTPSampler.port">80</stringProp> <stringProp name="HTTPSampler.protocol">http</stringProp> <stringProp name="HTTPSampler.contentEncoding"></stringProp> <stringProp name="HTTPSampler.path">/api/endpoint</stringProp> <stringProp name="HTTPSampler.method">POST</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp> <boolProp name="HTTPSampler.use_keepalive">true</boolProp> <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> <stringProp name="HTTPSampler.embedded_url_re"></stringProp> <stringProp name="HTTPSampler.connect_timeout"></stringProp> <stringProp name="HTTPSampler.response_timeout"></stringProp> <stringProp name="HTTPSampler.body_data">{ "key1": "value1", "key2": "value2" }</stringProp> </HTTPSamplerProxy> <hashTree> <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> <boolProp name="ResultCollector.error_logging">false</boolProp> <objProp> <name>saveConfig</name> <value class="SampleSaveConfiguration"> <time>true</time> <latency>true</latency> <timestamp>true</timestamp> <success>true</success> <label>true</label> <code>true</code> <message>true</message> <threadName>true</threadName> <dataType>true</dataType> <encoding>false</encoding> <assertions>true</assertions> <subresults>true</subresults> <responseData>false</responseData> <samplerData>false</samplerData> <xml>false</xml> <fieldNames>false</fieldNames> <responseHeaders>false</responseHeaders> <requestHeaders>false</requestHeaders> <responseDataOnError>false</responseDataOnError> <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> <assertionsResultsToSave>0</assertionsResultsToSave> <bytes>true</bytes> <sentBytes>true</sentBytes> <url>true</url> <threadCounts>true</threadCounts> <idleTime>true</idleTime> <connectTime>true</connectTime> </value> </objProp> <stringProp name="filename"></stringProp> </ResultCollector> <hashTree/> </hashTree> </hashTree> </hashTree> </hashTree> </jmeterTestPlan> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值