More Related Content
Similar to 00001_test_automation_portfolio_20240313
Similar to 00001_test_automation_portfolio_20240313 (20)
00001_test_automation_portfolio_20240313
- 2. 目次
● 前提
● 自動化の流れ
○ Step1 テスト実行を自動化
○ Step2 確認対象データ出力を自動化
○ Step3 データ突合を自動化
○ Step4 ツールをキーワード駆動にしてチームに展開
○ Step5 リグレッションテスト導入
● 自動化して良かったこと
● 所感
- 10. import requests
import json
url = 'https://api.example.com/order'
headers = {~~~~}
# テストシナリオの数だけループ
for scenario in scenarios:
# 'test_actual'の内容をdataに代入
data = scenario['test_actual']
# 注文情報をJSON形式に変換したり整形したり
order_data_json = ~~~~
# POSTリクエストを送信
response = requests.post(url,
data=order_data_json, headers=headers)
print(f"Test No: {scenario['test_no']},
Status Code: {response.status_code}")
test_order.py
Step1 操作自動化(af)
Scenario.json
[{
"test_no": "0001",
"test_actual":{
"order_day": "2023-01-01",
"span": 12
:
}
},
{
"test_no": "0002",
:
- 14. ~~~~~
# POSTリクエストを送信
response = requests.post(url, data=order_data_json,
headers=headers)
# SQLコマンドで確認したいデータ出力
output_path = xxxxx
mysql_command = f'mysql db_name -ss -e "SELECT ~~~" >
{output_path}{scenario["test_no"]}.txt'
# コマンドの実行
result = subprocess.run(mysql_command, shell=True,
check=True, capture_output=True, text=True)
test_order.py
TEST0001.txt
TEST0001.txt
TEST0001.txt
利用開始日 利用終了日 請求日
1/1 1/31 2/1
・データをどう確認(整形)するかは後で考える!
・とはいえパッと見で何のデータかは解るようにはし
ておく
追加
Step2 確認対象データ出力を自動化(af)
- 17. var1.0 ver1.1
Ver1.0
Step3 確認する値を突合(af)
CLI
(スクリプト)
Ver1.1
利用開始日 利用終了日 請求日
1/1 1/31 2/1
2/1 2/28 3/1
:
diff ver1.0_0001_start_day.txt
ver1.1_0001_start_day.txt
開始日
1/1
2/1
3/1
:
開始日
1/1
2/1
3/1
:
var1.0 ver1.1
終了日
1/31
2/28
3/31
:
diff ver1.0_0001_end_day.txt
ver1.1_0001_end_day.txt
利用開始日 利用終了日 請求日
1/1 1/31 2/1
2/1 2/28 3/1
:
result
0001_start_day OK
0001_end_day NG
0001_invoice_day OK
:
終了日
1/31
2/28
3/28
:
データを整形してtxt出力、diffコマンド
用にデータを整形してtxt出力、diff結
果を一覧表示
請求パ
ターン
100
請求パ
ターン
100
仕
様