1.open_index脚本代码:
open_index() { int logincount=0 ; lr_start_transaction("login"); //添加事务 web_add_cookie("csrftoken=gSsqxzrI1c2OfXuWkyDsZwBuTuR6mGfpYnjKiOf6NzysWHfNJUbkclOUq6KEW2KZ; DOMAIN=192.168.1.102"); web_add_cookie("djdt=show; DOMAIN=192.168.1.102"); web_reg_find("Search=Body", "SaveCount=logincheckcount", "Text=登录", LAST); //检查响应中的Body内容中存在“登录”文本信息 web_url("192.168.1.102:8000_2", "URL=http://192.168.1.102:8000/", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t5.inf", "Mode=HTML", EXTRARES, "Url=/static/xadmin/vendor/font-awesome/fonts/fontawesome-webfont.eot?", ENDITEM, LAST); //统计需要在获取响应结果后 logincount=atoi(lr_eval_string("{logincheckcount}")); //lr_eval_string函数获取参数变量logincheckcount的值,并转为字符串,atoi函数将字符串值转为整型值 lr_output_message("logincount=%d",logincount); //打印函数 if(logincount>0) { lr_output_message("进入登录页成功"); return 0; } else { lr_output_message("进入登录页失败"); return -1; } }
2.submit_login脚本代码:
submit_login() { int loginoutcount=0; //定义整型变量,赋初值为0 web_reg_find("Search=Body", "SaveCount=loginoutcheckcount", "Text=注销", LAST); //检查响应中的Body内容中存在“注销”文本信息 web_submit_data("192.168.1.102:8000_3", "Action=http://192.168.1.102:8000/", "Method=POST", "RecContentType=text/html", "Referer=http://192.168.1.102:8000/", "Snapshot=t6.inf", "Mode=HTML", ITEMDATA, "Name=csrfmiddlewaretoken", "Value=KityV3QMmTRmrZQfljwDUA5NFtIrtYjssNkSGiEa8gn08JB6KF4v7pidc5BZ3kO2", ENDITEM, "Name=username", "Value=bobby", ENDITEM, "Name=password", "Value=admin123", ENDITEM, "Name=this_is_the_login_form", "Value=1", ENDITEM, "Name=next", "Value=/", ENDITEM, EXTRARES, "Url=/static/xadmin/vendor/font-awesome/fonts/fontawesome-webfont.eot?", ENDITEM, LAST); //统计需要在获取响应结果后 loginoutcount=atoi(lr_eval_string("{loginoutcheckcount}")); //lr_eval_string函数获取参数变量loginoutcheckcount的值,并转为字符串,atoi函数将字符串值转为整型值 lr_output_message("loginoutcount=%d",loginoutcount); //打印函数 if(loginoutcount>0) { lr_output_message("登录成功"); return 0; } else { lr_output_message("登录失败"); return -1; } }
3.sign_off脚本代码:
sign_off() { int outcount=0; //定义整型变量,赋初值为0 web_reg_find("Search=Body", "SaveCount=outcheckcount", "Text=成功退出", LAST); //检查响应中的Body内容中存在“成功退出”文本信息 lr_think_time(9); web_url("logout", "URL=http://192.168.1.102:8000/logout/", "Resource=0", "RecContentType=text/html", "Referer=http://192.168.1.102:8000/", "Snapshot=t7.inf", "Mode=HTML", LAST); //统计需要在获取响应结果后 outcount=atoi(lr_eval_string("{outcheckcount}")); //lr_eval_string函数获取参数变量loginoutcheckcount的值,并转为字符串,atoi函数将字符串值转为整型值 lr_output_message("outcount=%d",outcount); //打印函数 lr_end_transaction("login", LR_AUTO); //添加事务“login”结束,必须在有return结果前,不然会报错 if(outcount>0) { lr_output_message("登出成功"); return 0; } else { lr_output_message("登出失败"); return -1; } }
4.设置了事务,则意味着在脚本执行从事务开始到事务结束的脚本执行时间都为事务的时间
是否带think time时间,要看 Run-Time Setings->Think Time的设置:
勾选 Ignore think time:则忽略不计think time时间
勾选Replay think time:
勾选 As recorded:则表示使用录制时录制的think time时间
勾选 Limit think time to 5 seconds:表示think time最多5秒,少于5秒的按照录制时间,多于5秒按5秒算
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构