init、action、end関数があります。マルチアクション方式は可能ですか?別の実行スレッドで実行したい。
3 に答える
VuGenにアクションを追加するのは簡単ですが、同じ仮想ユーザー内でアクションを並行して実行することはできません。並行して実行する場合は、スクリプトのコントローラーで複数の仮想ユーザーを実行する必要があります。
仮想ユーザー内で新しいスレッドをインスタンス化することは非常に困難であり、スレッドを作成するためにWinAPIを使用する必要があります-絶対にお勧めしません。
2つの異なるアクションを並行して実行する場合は、代わりに複数のスクリプトを使用してください。仮想ユーザー間で変数やデータを共有することはできません。
はい、複数のアクションを実行できます。記録中に、VUGen ツールバーから新しいアクションを指定できます。すべてを「アクション」に記録し、スクリプトを編集して独自のアクションを作成し、そこにコードを貼り付けることもできます。
追加のアクションに関する限り、LR 構成、つまり default.usp と [project].usr ファイルを編集できます。最初から言っておきますが、構成ファイルをいじるのは危険な場合があります。そうする場合は、最初にファイルまたはプロジェクトのバックアップを取り、注意して進めてください。
そうは言っても、これは「Create New Action」が有効になっていないという問題を克服しているようです(ただし、それを引き起こす一連の状況を知りたいです-@TheBlastOneは、使用されているプロトコルに関係していることを示しています)。
とにかく、次のように、default.usp を編集して、新しいアクション (Action2 など) の RulLogicRunRoot エントリを追加し、LR 実行ライフサイクルで構成します。
デフォルト.usp
[RunLogicRunRoot:Action2]
MercIniTreeSectionName="Action2"
RunLogicObjectKind="Action" <-- "Action" in this case means LR object type
Name="Action2"
MercIniTreeFather="RunLogicRunRoot"
RunLogicActionType="VuserRun"
...
Profile Actions name=vuser_init,Action,Action2,vuser_end
...
RunLogicActionOrder="Action,Action2"
...
MercIniTreeSons="Action,Action2"
[project].usr ファイルのどの部分を編集する必要があるかわかりませんが、いずれにしても、新しいアクションのアクションとインタープリターを定義する必要があります。
[プロジェクト].usr
[Actions]
vuser_init=vuser_init.c
Action=Action.c
Action2=Action2.c
vuser_end=vuser_end.c
...
[Interpreters]
vuser_init=cci
Action=cci
Action2=cci
vuser_end=cci
...
次のものがどれだけ必要かはわかりませんが、それぞれにエントリを作成するのがおそらく賢明です (アクション スクリプトに従って):
[Recorded Actions]
...
[Replayed Actions]
...
[Modified Actions]
最後に、プロジェクト ディレクトリに Action2.c を作成することを忘れないでください (Action.c との衝突を避けるために適切な名前の関数を使用)。LR でプロジェクトを再度開くと、スクリプト ビューに Action2 が含まれているはずです。
注意: 申し訳ありませんが、スレッドに関するご質問にはお答えできません... まだそれほど高度ではありません。