企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
>[info]功能逻辑:wap官网(a.4399sy.com.hk),每个用户登录一次,发帖2次,发帖成功后注销退出。 实战开始前,先看一下我完整的jmeter用例结构 ![](https://box.kancloud.cn/8b3b3aac94a02ce473a289d97f550423_429x456.jpg) [TOC] ## 实战步骤: ### 步骤一:添加测试计划 ![](https://box.kancloud.cn/f38c669f621baf65cf52136a5447b206_952x672.jpg) ### 步骤二:添加线程组 ![](https://box.kancloud.cn/53e360c2c042e45143dd123c9400b2db_960x528.jpg) ### 步骤三:添加HTTP Cookie 管理器 Cookie管理器会自动管理Cookie信息,在web测试中使用广泛。在本实例中,如果没有添加Cookie管理器,则登录后,自动重定向后登录状态断言失败,发帖失败。 ![](https://box.kancloud.cn/791e1cd9061c4119a159b6e6931a184b_956x357.jpg) ### 步骤四:添加HTTP信息头管理器 本元件进行请求header头管理,本实例中,使用wap官网,需添加 User-Agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Mobile Safari/537.36 如果没有添加UA,则会造成登录成功后,页面重定向到PC官网首页,造成用户登录状态不正确。 ![](https://box.kancloud.cn/8165ed20f7f2b0cf5407bea2cb181b5b_953x220.jpg) ### 步骤五:添加HTTP请求默认值 本元件配置HTTP请求默认值,在其作用范围内,其余的HTTP Sampler 如果没有填写覆盖默认值,则可以直接使用默认值。 本实例的所有请求,均在同一个域名内:a.4399sy.com.hk ![](https://box.kancloud.cn/5a000c31461e883ae2533c2250a54ba0_955x658.jpg) ### 步骤六:添加参数化CSV数据配置 本元件从csv文件中读取参数值到jmeter变量中。本实例将登录用户名和密码存放在user.csv中,jmeter运行时将其迭代读取到对应变量name,pwd 中,后续引用如${name},${pwd} *Recycle on EOF?*:False 不重复迭代 *Stop thread on EOF?*:True csv迭代完成后,退出线程 ![](https://box.kancloud.cn/2a6ee0e81cc3e4432337297e4a165f6c_952x353.jpg) 其中,csv内容如下: ```cmd 001@126.com,123456 002@126.com,123456 ``` ### 步骤七:添加逻辑控制器:仅一次控制器 本元件,一个线程只执行一次,本实例用于控制一个用户只登录一次 ![](https://box.kancloud.cn/c6bc71052e23e7d67f79c81a7b0cfa2e_953x134.jpg) ### 步骤八:添加HTTP Sampler:发送登录请求 本实例,发送请求参数做了参数化,引用步骤六中的变量${name},${pwd} ![](https://box.kancloud.cn/b492ee3113b660c63359f14556573421_946x683.jpg) ### 步骤九:添加断言:响应断言 登录后,页面重定向到官网首页,html内容中显示登录用户名,因此响应断言如下: ![](https://box.kancloud.cn/0402bd944beef2d5f0cf7d4161194bda_952x394.jpg) ### 步骤十:添加逻辑控制器:循环控制器 本元件在此例中,用于控制用户登录后,发帖2次 ![](https://box.kancloud.cn/82960071277caa6104bd78f809c1089e_952x156.jpg) ### 步骤十一:添加固定定时器 本元件,主要用于类似思考时间 ![](https://box.kancloud.cn/305d5116ee7b115ba3d88317ae748bac_950x143.jpg) ### 步骤十二:添加HTTP Sampler:发帖留言请求 本Sampler中,引用步骤十三中的前置处理器中定义的变量${content} 和内置函数助手 ${__time(,)} ![](https://box.kancloud.cn/3babbe8cf8080ef890aab628f269c2be_953x675.jpg) ### 步骤十三:添加前置处理器:用户参数 前置处理器,顾名思义,在Sampler 发送之前执行,本实例中,发帖时,用户_1 和 用户_2使用不同的发帖内容,并且发帖内容赋予给变量${content} ![](https://box.kancloud.cn/40331cb625a6a394a1db2d472005128a_948x217.jpg) ### 步骤十四:添加断言:响应断言 本实例,发帖成功后,返回json中,code=1,发帖失败,则返回code=-1。所以发帖成功断言如下: ![](https://box.kancloud.cn/480a6f6fdffbe07bb4bda74eea04e6de_949x387.jpg) ### 步骤十五:添加后置处理器:正则表达式提取器 根据发帖响应,用正则表达式将code值提取出来,赋予变量${code_result},用于后续的if控制器。 ![](https://box.kancloud.cn/b905f357eca06b744d9b7789f1987028_955x362.jpg) ### 步骤十六:添加逻辑控制器:IF控制器 本控制器,用于控制本实例中,如果发帖成功,则进行注销操作。 ![](https://box.kancloud.cn/01ca8785ea4386691e67e7f4ec0fe056_951x168.jpg) ### 步骤十七:添加HTTP Sampler:注销请求 ![](https://box.kancloud.cn/e8f17a66e63a59a8eaee27fad44812f6_949x655.jpg) ### 步骤十八:添加断言:响应断言 注销成功后,页面中不再记录用户状态,断言如下: ![](https://box.kancloud.cn/21fdaba30ab1fe325d4ee0d7f286bf01_952x389.jpg) ### 步骤十九:添加监听器:查看结果树 本元件,用于显示请求与响应信息 ### 步骤二十:添加Debug Sampler 本元件,用于jmeter调试,显示jmeter变量值 ## 各元件的运行顺序 1. Configuration elements 2. Pre-Processors 3. Timers 4. Sampler 5. Post-Processors (unless SampleResult is null) 6. Assertions (unless SampleResult is null) 7. Listeners (unless SampleResult is null) <hr style="margin-top:100px"> :-: ![](https://box.kancloud.cn/331f659e8e6cddb0d9f182e00e32803f_258x258.jpg) ***微信扫一扫,关注“python测试开发圈”,获取更多测试开发分享!***