随笔 - 633,  文章 - 0,  评论 - 13,  阅读 - 48万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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.

 

posted on   大话人生  阅读(278)  评论(0编辑  收藏  举报
编辑推荐:
· .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语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示