メイン コンテンツをスキップする 補完的コンテンツへスキップ

データを変換

Talend Cloud API Testerでは、関数を使ってデータを操作できます。

関数では、新しいデータを作成したり、既存のデータを変換したりできます。データを変換する関数は、終了する式の値に適用されます。

使用例

Star Wars APIの惑星リストで最初の10個の惑星名を取得する場合は、${"Star-wars API"."Get 10 planet names"."response"."body".jsonPath("$.results[:10].name")}という式を使用します。jsonPathメソッドにより、${"Star-wars API"."Get 10 planet names"."response"."body"}という式の結果が解析されます。

過去1週間のログを取得する場合は、クエリーパラメーターにhttps://myapi.com/logs?from=${timestamp().addTime("WEEK", "-1")}&to=${timestamp()}という式を含むURLを作成します。

現在の日付をISO形式で生成する場合は、${timestamp().formatDate('TIMESTAMP', 'ISO_8601')}を使用します。

定数

${"toto"}のような式を記述する場合、式は以下のように評価されます。

  • 値がある場合は、現在の環境の変数totoの値。
  • 一致する環境変数がない場合は、リポジトリーのルートレベルのrequest/scenario/service/project toto
  • それ以外の場合は文字列toto

データ作成ファンクション

ファンクション 説明 引数
timestamp 1970年1月1日、00:00:00 GMTから評価された日付までのミリ秒数を返します。 なし 式: ${timestamp()}

考えられる結果: 1505136142950

UUID UUIDを返します。 なし 式: ${uuid()}

考えられる結果: f5fafd92-2298-4e72-97c9-df4dabaf27d2

random 0 <= number < maxの範囲内の乱数を返します。 Maximum: デフォルトは1000000000 式: ${random(50)}

考えられる結果: 42

randomString 特定の長さのランダムな文字列を返します。
情報メモ注: この関数はパスワード生成での信頼性が低いため、この目的には使用しないでください。
Length: 文字列にある文字数。デフォルトは10です。

[a-z]: 文字列に小文字を含める場合はこのチェックボックスをオンにします。

[A-Z]: 大文字を含める場合はこのチェックボックスをオンにします。

[0-9]: 数字を含める場合はこのチェックボックスをオンにします。

式: ${randomString(10, true, true, true)}

考えられる結果: 4ptUKhHYMr

データ変換ファンクション

ファンクション 説明 引数
base64 ベース64にエンコードされます。 なし 式: ${"username:password".base64()}

結果: dXNlcm5hbWU6cGFzc3dvcmQ=

lower デフォルトロケールの規則を使用して、すべての文字を小文字に変換します。 なし 式: ${"AbC".lower()}

結果: abc

length 以下の入力の長さを計算します。
  • 入力が文字列の場合、文字数
  • JSON配列の項目の数
  • JSONオブジェクトのキーの数
なし 式: ${"Star-wars API"."Get 2 planets"."response"."body"}
結果:
{
                  "count":61,
                  "results": [
                  {"name":"Alderaan" },
                  {"name":"Naboo" },
                  {"name":"Hoth" }
                  ]
                  }

式: ${"Star-wars API"."Get 2 planets"."response"."body".length()}

結果: 2 式: ${"Star-wars API"."Get 2 planets"."response"."body"."results".length()}

結果: 3

式: ${"Star-wars API"."Get 2 planets"."response"."body"."results"."0"."name".length()}

結果: 8

Substring 切り捨てられた入力を返します。 Start: 抽出する最初の文字の位置(デフォルトでは0)。

End: 省略する最初の文字の位置(デフォルトでは入力の最後)。

情報メモ注: 最初の文字のインデックスは0です。
式: ${"0123456".substring(1)}

結果: 123456

式: ${"0123456".substring(1, 2)}

結果: 1

式: ${"0123456".substring(0, 4)} 結果: 0123

jsonPath 指定されたJSONパスselectorを使い、JSON入力から抽出されたエレメントを返します。 セレクター: 入力から抽出するJSONの部分を指すJSONパスセレクター。 式: ${"{\"titi\": \"toto\"}".jsonPath("$.titi")}

結果: toto

XPath 指定されたXPathである selectorを使い、XML入力から抽出されたエレメントを返します。 セレクター: 入力から抽出するXMLの部分を指すXPathセレクター。 式: ${"<title lang="en" />".xPath("//title/@lang")}

結果: [lang="en"]

hmac ハッシュベースのメッセージ認証コードを作成します。 Cipher: ハッシュ関数(SHA1SHA224SHA256SHA384SHA512のいずれか)。Secret

: シークレットキー。

Output: 出力タイプ(Base64またはHex)。

式: ${"test".hmac("sha256", "secret", "Base64")}

結果: Aymga2LNFrM+tnkr6MYLFY2Jou46h2/Omogeu0iMCRQ=

式: ${"test".hmac("sha1", "secret", "Hex")}

結果: 1aa349585ed7ecbd3b9c486a30067e395ca4b356

sha その入力をハッシュ化します。 Cipher: ハッシュ関数(SHA1SHA224SHA256SHA384SHA512のいずれか)。

Output: 出力タイプ(Base64またはHex)。

式: ${"toto".sha("SHA224", "Base64")}

結果: IcBD7s1+hUI6ctrjwGKitb+g5rNc4/54jJtXpg==

式: ${"toto".sha("SHA1", "Hex")}

結果: 0b9c2625dc21ef05f6ad4ddf47c5f203837aa32c

md5 入力のMD5ハッシュを計算します。 なし 式: ${"toto".md5()}

結果: f71dbe52628a3f83a77ab494817525c6

upper デフォルトのロケールの規則を使用して、すべての文字を大文字に変換します。 なし 式: ${"aBc".upper()}

結果: ABC

String 入力は引用符で囲みます。 Quotes: 入力の引用に使用する文字('または"で、デフォルトでは"を使用)。 式: ${"toto".string()}

結果: "toto"

式: ${"toto".string("\"")}

結果: "toto"

式: ${"toto".string("'")}

結果: 'toto'

math 選択された操作を入力値で実行します。 Operation: ADDSUBTRACTMULTIPLYDIVIDEのいずれか

Value: 数字

式: ${"7".math("MULTIPLY", "6")}

結果: 42

式: ${"3.14".math("ADD", "0.00159265")}

結果: 3.14159265

式: ${"100".math("DIVIDE", "-5")}

結果: -20

addTime 日付に対し、選択された時間単位の数字を追加または削除します。 Time unit: YEARMONTHWEEKDAYHOURMINUTESECONDのいずれか

Value: 整数(負数を使えば時間単位の削除が可能)

式: ${timestamp().addTime("YEAR", "1")}

考えられる結果: 1620292896490

式: ${timestamp().addTime("WEEK", "-2")}

考えられる結果: 1587547696437

formatDate 日付を選択された形式に変換します。 Input format: TIMESTAMPまたはISO_8601

Output format: TIMESTAMPまたはISO_8601

式: ${timestamp().formatDate("TIMESTAMP", "ISO_8601")}

考えられる結果: 2020-05-06T13:43:22.248Z

式: ${"2020-04-06T13:44:51.435Z".formatDate("ISO_8601", "TIMESTAMP")}

結果: 1586180691435

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。