1.点击 Show Snapshot pane(快照)按钮
2.在Snapshot 界面中 选择 Page View (查看页面内容)
3.在页面中找到一个可以判断执行成功的文本信息,选中后,右击,选择 “Add Text Check Step” 添加文本信息断言
4.弹出 “Find Text”弹框
Search for Specific Text 下的文本内容为需要查找的文本内容,例如: test001
选中 Match Case:表示完全匹配
Search in : 选项中All、Body、Headers 代表的是响应中的头和内容,不是html的标题和body
Save count : registerflag :表示在响应中找到文本信息几次,就把次数作为变量registerflag的值,即把出现的次数写到一个变量中
5.action 添加代码如下:
submit_account() { web_reg_find("Search=Body", "SaveCount=registerflag", "Text=test001 ", LAST); web_submit_data("add_9", "Action=http://192.168.1.102:8000/users/userprofile/add/", "Method=POST", "EncType=multipart/form-data", "RecContentType=text/html", "Referer=http://192.168.1.102:8000/users/userprofile/add/", "Snapshot=t12.inf", "Mode=HTML", ITEMDATA, "Name=csrfmiddlewaretoken", "Value={addaccountcsrfmiddlewaretoken}", ENDITEM, "Name=csrfmiddlewaretoken", "Value={addaccountcsrfmiddlewaretoken}", ENDITEM, "Name=username", "Value={RegistName}", ENDITEM, "Name=password1", "Value={RegistPasswordParam}", ENDITEM, "Name=password2", "Value={RegistPasswordParam}", ENDITEM, "Name=_save", "Value=", ENDITEM, EXTRARES, "Url=/static/xadmin/vendor/font-awesome/fonts/fontawesome-webfont.eot?", "Referer=http://192.168.1.102:8000/users/userprofile/", ENDITEM, LAST); return 0; }
其中
web_reg_find("Search=Body", "SaveCount=registerflag", "Text=test001 ", LAST);
为相关代码
6. Text的内容可以换为参数,如下:
web_reg_find("Search=Body", "SaveCount=registerflag", "Text={RegistName} ", LAST);
7.完整断言代码如下:
submit_account() { int registercount = 0; //定义一个整型变量,作为找到预期文本的断言 web_reg_find("Search=Body", "SaveCount=registerflag", "Text={RegistName}", LAST); web_submit_data("add_9", "Action=http://192.168.1.102:8000/users/userprofile/add/", "Method=POST", "EncType=multipart/form-data", "RecContentType=text/html", "Referer=http://192.168.1.102:8000/users/userprofile/add/", "Snapshot=t12.inf", "Mode=HTML", ITEMDATA, "Name=csrfmiddlewaretoken", "Value={addaccountcsrfmiddlewaretoken}", ENDITEM, "Name=csrfmiddlewaretoken", "Value={addaccountcsrfmiddlewaretoken}", ENDITEM, "Name=username", "Value=test{RegistName}", ENDITEM, "Name=password1", "Value=admin111", ENDITEM, "Name=password2", "Value=admin111", ENDITEM, "Name=_save", "Value=", ENDITEM, EXTRARES, "Url=/static/xadmin/vendor/font-awesome/fonts/fontawesome-webfont.eot?", "Referer=http://192.168.1.102:8000/users/userprofile/", ENDITEM, LAST); registercount = atoi(lr_eval_string("{registerflag}")); //atoi()函数,把字符串转为整型 //lr_eval_string("{registerflag}"),表示取变量registerflag的值 if(registercount>0) { lr_output_message("注册成功"); return 0; //注册成功则返回0 } //两行及以上代码需要加大括号 else { lr_output_message("注册失败,失败用户为:%s",lr_eval_string("{RegistName}")); return -1; //注册失败,则返回-1 } }
8.
web_reg_find("Search=Body",
"SaveCount=registerflag",
"Text=test001 ",
LAST);
所有带reg的函数都表示为注册类型的函数,先声明注册再使用。
找到的是服务器响应中的内容,是响应内容,响应接口内容,不是其他。
9.
【推荐】国内首个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语句:使用策略模式优化代码结构