我这里需要参数化并索要测试数据吗?

问题描述 投票:0回答:1

我遇到过这样的情况:我正在测试 CRM 应用程序,当我单击帐户选项卡时,它会提取一堆信息并传递参数来填充它。

例如,存款账户之类的东西:

<div style='display:none' id='AJAXCT_3_TABTHREAD1'>

   {"ID":3,"p":1,"Initial":{"D_DepositAccountList_pa5493899103423pz":{"pxResults(1)":{"AccountNumber":"54324932","pyText":""}}},"Values":{},"Pages":[],"AddRemove":[],"WatchRemoved":[],"RequestorWatchRemoved":[]}

</div>

账号将显示在用户界面上。它似乎执行了另一个 ajax 调用,无论它有多少个帐户,它都会执行相同的操作。例如:

<div style='display:none' id='AJAXCT_3_TABTHREAD1'>

   {"ID":3,"p":1,"Initial":{"D_DepositAccountList_pa5493899103423pz":{"pxResults(10)":{"AccountNumber":"","pyText":""}}},"Values":{},"Pages":[],"AddRemove":[],"WatchRemoved":[],"RequestorWatchRemoved":[]}

</div>

pxResults(10)
上未返回结果后(第 10 个帐户,因此只有 9 个),它会移至列表中可能存在的下一组帐户。就像商业贷款账户一样。

它的主体数据中有这个,但它是一个 POST 请求

D_DepositAccountList_pa5493899103423pz.pxResults(2)

这也在每个人的相同呼吁中:

    <div bSimpleLayout='true'  class='flex  content  layout-content-mimic_a_sentence content-mimic_a_sentence margin-r-3x'    ><div  style=''  class='content-item content-field item-1   dataValueRead flex flex-row '  STRING_TYPE='field' RESERVE_SPACE='false'><span ><a  data-test-id='543543578979' href='#'onclick='pd(event);'  data-ctl='Link' name='DisplayAccountNumberWithActions_D_DepositAccountList_pa5493899103423pz.pxResults(1)_1' data-click='[["runDataTransform", ["PrepareTransactionHistory", "=", "D_DepositAccountList_pa5493899103423pz.pxResults(1)",":event"]],["showHarnessWrapper",["popup","RANDOMCOMPANY-Data-Account","TransactionHistory","","","D_DepositAccountList_pa5493899103423pz.pxResults(1)","No","scrollbars=yes,resizable=1,width=,height=","",{&quot;pyDataTransform&quot;:&quot;SetAccountDetailsTransactions&quot;,&quot;pyDataTransformParams&quot;:{}},":event","","","","","","false"]]]'  class='' >54324932</a></span></div><div id="CT" SWP=".AccountNumber"  SHOW_WHEN=".AccountNumber != ''" style=' '  class='content-item content-field item-2   dataValueRead flex flex-row '  STRING_TYPE='field' RESERVE_SPACE='false'><span ><i class='icons'><img   data-test-id='23034020340213'   data-ctl='Icon'  src='webwb/gegwegewg_1112051703.png!!.png' tabindex='0' role='link' name='DisplayAccountNumberWithActions_D_DepositAccountList_pa5493899103423pz.pxResults(1)_3' alt= '' data-click='[["runDataTransform", ["SetAccountNumberToCopy", "=", "D_DepositAccountList_pa5493899103423pz.pxResults(1)",":event"]],["runScript", ["copyToClipboard(\"#~D_DepositAccountList_pa5493899103423pz.pxResults(1).pyText~#\")"]]]'  /></i></span></div></div>

它通常会执行大约 2-3 个 ajax 调用,看起来像是通过 XML 填充网站,另一个调用是传递一堆 json 格式的参数/数据,但不确定它的作用。

<span>
   <span data-test-id='532535235235' data-ctl='Text'class='rightJustifyStyle'>$250,000.00</span>
 </span>

也许 data-test-id 很重要?

根据帐户的不同,它似乎只执行ajax请求来填写诸如贷款帐户或商业贷款帐户之类的动态布局,然后再进行

 pxResults(1)
ajax调用(如果它存在于我正在使用的测试数据中);但是,我不知道它是如何“动态”决定调用哪些的。

<div data-template-name='DynamicLayout' data-template-instance-id='532535235235' CLASS='template-root-marker'></div>
<div id="pyCustomError" style="display:none;">
    <div data-template-name='pxSection' data-template-instance-id='5435453453' CLASS='template-root-marker'>
        <div id='65465465462' style='display:none'></div>

这也显示在许多 ajax 请求的字符串查询中

 D_DepositAccountList_pa5493899103423pz.pxResults(1)
特别是
pa5493899103423pz
,具体取决于帐户。

不确定我是否必须拥有测试数据,我知道这些数据会提前加载特定的内容并据此对其进行参数化。我只是想看看我是否可以使其更加动态,因为想象我有 1 个测试数据加载 20 个不同的帐号,但假设我现在有 30 个人.. 我认为这可以快速增加并且很难管理。

ajax jmeter performance-testing jmeter-5.0
1个回答
0
投票

我认为这是某种形式的分页,因此帐户上的数据是以“块”的形式被请求的,通常这样做是为了限制请求的大小并防止潜在的DOS攻击,通过要求返回数百/数千个实体。

为了参数化您的请求,您需要找到获取元数据或帐户第一个块的 AJAX 请求。通常,响应应包含结果数、当前“页面”以及其他“页面”是否可用。用于模拟此情况的合适测试元素是 While Controller

关于

data-test-id
我无法说明它的用途,我的假设是它是某种形式的服务信息,可以使用SeleniumPlaywright

等浏览器自动化框架更轻松地对CRM进行功能自动化测试
© www.soinside.com 2019 - 2024. All rights reserved.