欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

LoadRunner調(diào)用JS加密后登錄實現(xiàn)

 更新時間:2023年06月02日 11:17:29   作者:bluesbruce  
這篇文章主要為大家介紹了LoadRunner調(diào)用JS加密后登錄實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

說明

使用LoadRunner調(diào)用javascript,實現(xiàn)加密登錄信息后,提交并登錄。

本例使用LoadRunner 2020 社區(qū)版。

測試網(wǎng)站登錄流程

測試網(wǎng)站采用了SM4對稱加密,每次GET請求登錄頁面時,生成隨機密鑰。把用戶名和密碼進行加密,密文POST到后端進行驗證。

啟用web_js_run

如下圖所示,首先下載了加密腳本sm4.js并導入到額外文件中。

依次選擇運行時設置-Internet協(xié)議-首選項-啟用運行Javascript代碼。

檢查點(web_reg_find)中文支持

在調(diào)試過程中發(fā)現(xiàn),web_reg_find有點問題,經(jīng)過查詢資料(https://www.cnblogs.com/zjn-20161215/p/8603468.html),使用lr_convert_string_encoding進行編碼,并將編碼內(nèi)容存入變量。

// 將查找目標轉(zhuǎn)為utf8編碼,放在變量test_find中
lr_convert_string_encoding("退出系統(tǒng)", LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8, "text_find");
// 將test_find內(nèi)容變?yōu)閟tring,存在變量find中
lr_save_string(lr_eval_string("{text_find}"),"find");
web_reg_find("Search=Body", "Text={find}", LAST);

調(diào)用JS

web_js_run調(diào)用的代碼中可以使用TruClient函數(shù)。

TruClient函數(shù)等效VuGen函數(shù)
LR.advanceParamlr_advance_param
LR.setParamlr_save_string
LR.getParamlr_eval_string
LR.loglr_debug_message
LR.userDataPointlr_user_data_point
LR.freeParamlr_free_parameter
// 調(diào)用JS,加密數(shù)據(jù)。js文件導入【解決方案-額外文件】,LR.getParam是web_js_run中讀取變量的方法
web_js_run(
    "Code=window.sm4.encrypt(LR.getParam('username') + LR.getParam('loginKey') + LR.getParam('password'), LR.getParam('loginKey'));",
    "ResultParam=cipherText",
    SOURCES,
    "File=sm4.js",
    ENDITEM,
    LAST);

完整內(nèi)容

參數(shù)配置

完整腳本

代碼很簡單

#include "web_api.h"
Action()
{
    lr_start_transaction ("登錄OA"); 
    /*----獲取key,開始----*/
    // 設置正則提取規(guī)則
    web_reg_save_param_regexp(
        "ParamName=loginKey",
        "RegExp=var k.*?=.*?\"(.*?)\";",
        "Ordinal=1",
        SEARCH_FILTERS,
        LAST);
    //lr_output_message(lr_eval_string("{loginKey}"));
    // 訪問頁面,可以參數(shù)化直接用{}
    web_url("getLogin",
        "URL={uri}/login.html",
        "TargetFrame=",
        "Resource=0",
        "Referer={uri}",
        "Snapshot=t1.inf",
        "Mode=HTTP",
        LAST);
    /*----獲取key,結(jié)束----*/
    /*----登錄,開始----*/
    // 調(diào)用JS,加密數(shù)據(jù)。js文件導入【解決方案-額外文件】,LR.getParam是web_js_run中讀取變量的方法
    web_js_run(
        "Code=window.sm4.encrypt(LR.getParam('username') + LR.getParam('loginKey') + LR.getParam('password'), LR.getParam('loginKey'));",
        "ResultParam=cipherText",
        SOURCES,
        "File=sm4.js",
        ENDITEM,
        LAST);
    //lr_output_message(lr_eval_string("{cipherText}"));
    // 檢查點 不支持中文的解決辦法
    // 將查找目標轉(zhuǎn)為utf8編碼,放在變量test_find中,注意正則表達式的轉(zhuǎn)義字符
    lr_convert_string_encoding("退出系統(tǒng)", LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8, "text_find");
    // 將test_find內(nèi)容變?yōu)閟tring,存在變量find中
    lr_save_string(lr_eval_string("{text_find}"),"find");
    web_reg_find("Search=Body",
        "Text={find}",
        LAST);
    // 提交數(shù)據(jù),登錄
    web_submit_data("postLogin",
        "Action={uri}/login.html",
        "Method=POST",
        "TargetFrame=body",
        "RecContentType=text/html",
        "Referer={uri}/login.html",
        "Snapshot=t2.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=ticket", "Value={cipherText}", ENDITEM,
        LAST);
    /*----登錄,結(jié)束----*/
    lr_end_transaction ("登錄OA", LR_AUTO); 
    return 0;
}

以上就是LoadRunner調(diào)用JS加密后登錄實現(xiàn)的詳細內(nèi)容,更多關(guān)于LoadRunner JS加密登錄的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 微信小程序 MD5的方法詳解及實例代碼

    微信小程序 MD5的方法詳解及實例代碼

    這篇文章主要介紹了微信小程序 MD5的方法詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 微信小程序 require機制詳解及實例代碼

    微信小程序 require機制詳解及實例代碼

    這篇文章主要介紹了微信小程序 require機制詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • JSON stringify及parse方法實現(xiàn)數(shù)據(jù)深拷貝

    JSON stringify及parse方法實現(xiàn)數(shù)據(jù)深拷貝

    這篇文章主要為大家介紹了JSON.stringify遞歸及JSON.parse有限狀態(tài)自動機實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 微信小程序 詳解Page中data數(shù)據(jù)操作和函數(shù)調(diào)用

    微信小程序 詳解Page中data數(shù)據(jù)操作和函數(shù)調(diào)用

    這篇文章主要介紹了微信小程序 詳解Page中data數(shù)據(jù)操作和函數(shù)調(diào)用的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • TypeScript新語法之infer?extends示例詳解

    TypeScript新語法之infer?extends示例詳解

    這篇文章主要為大家介紹了TypeScript新語法之infer?extends示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 微信小程序 觸控事件詳細介紹

    微信小程序 觸控事件詳細介紹

    這篇文章主要介紹了微信小程序 觸控事件的相關(guān)資料,在開發(fā)微信小程序的時候,難免會用到這樣的功能,這里小編就幫大家梳理下相應的知識,需要的朋友可以參考下
    2016-10-10
  • npm?start運行項目過程package.json字段詳解

    npm?start運行項目過程package.json字段詳解

    這篇文章主要為大家介紹了npm?start運行項目過程package.json字段詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 基于JavaScript代碼實現(xiàn)微信掃一掃下載APP

    基于JavaScript代碼實現(xiàn)微信掃一掃下載APP

    有很多人在做微信的掃一掃下載。但是在微信更新之后微信將該功能給禁止掉了,也不能說是全面禁止吧,因為騰訊、微信是一家嘛,通過應用寶審核的應用好像還是可以通過掃一掃直接下載的,下面通過本篇文章給大家介紹微信掃一掃下載app的代碼片段,感興趣的朋友一起看看吧
    2015-12-12
  • 微前端qiankun改造日漸龐大的項目教程

    微前端qiankun改造日漸龐大的項目教程

    這篇文章主要為大家介紹了微前端qiankun改造日漸龐大的項目教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 微信小程序 Page()函數(shù)詳解

    微信小程序 Page()函數(shù)詳解

    這篇文章主要介紹了微信小程序 Page()函數(shù)詳解的相關(guān)資料,在開發(fā)過程中肯定會遇到Page()函數(shù),希望能幫助到大家,需要的朋友可以參考下
    2016-10-10

最新評論