0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

T-DASHでDB登録確認までテスト自動化してみた

Posted at

この記事関して

テスト自動化ツールT-DASHでデータ入力からDBへの登録確認までのやり方を記載しています。

テスト対象

こちらの記事の掲示板アプリを利用させて頂きました。
https://qiita.com/tomson784/items/a5ad6e47643449dffd18
https://github.com/tomson784/bbs
image.png

自動化するシナリオ

1.掲示板アプリで投稿内容と名前を入力して送信
 (データドリブン機能で入力データを変えて反復テストをする)

2.入力されたデータがDBに登録されているか検証する
 (カスタム動作機能でキーワードを独自に作成する)

シナリオ.gif

1.掲示板アプリで投稿内容と名前を入力して送信を行う手順を作成

1.T-DASHで投稿内容と名前を送信するまでのシナリオ作成する
image.png

「Setup操作」と「掲示板画面で送信した情報がDB登録されていること」でテストケースを分けているのは
「掲示板画面で送信した情報がDB登録されていること」のテストケースで反復テストをしたいため。

2.投稿と名前の入力値をデータドリブン設定する
image.png
image.png
外部ファイル(xlsx,csv)からもデータドリブン入力値の設定も可能
image.png
image.png

2.入力されたデータがDBに登録されているか検証を行う手順を作成

1.DBへSelectクエリするPythonコードを作成する
今回はローカルのDB(sqlite3)へのアクセスにしています。
PythonでのDBへの接続方法に関しては調べてみてください。

dbconnect.py
import sqlite3
from robot.libraries.BuiltIn import BuiltIn

def validateNameColData(name):
    dbFilePath = "C:/build/flasksample/sample-DBApp/bbs/test.db"
    try:
        conn = sqlite3.connect(dbFilePath)
        cur = conn.cursor()
        cur.execute('SELECT * from article WHERE name=?',(name,))
        # 入力した名前がDBのarticleテーブルのname列にあるかチェック
        # 無ければNGとしてFalseを返す
        if len(cur.fetchall()) == 0:
            return False
        return True
        
    except Exception as e:
        print(e)
        return False
    finally:    
        cur.close()
        conn.close()
        
def validateColArticleData(article):
    dbFilePath = "C:/build/flasksample/sample-DBApp/bbs/test.db"
    try:
        conn = sqlite3.connect(dbFilePath)
        cur = conn.cursor()
        cur.execute('SELECT * from article WHERE article=?',(article,))
        # 入力した投稿がDBのarticleテーブルのarticle列にあるかチェック
        # 無ければNGとしてFalseを返す
        if len(cur.fetchall()) == 0:
            return False
        return True
    except Exception as e:
        print(e)
    finally:    
        cur.close()
        conn.close()

2.カスタム動作画面でDB登録を検証するキーワードを作成する
動作名:「ARTICLEテーブルへの登録を検証する(NAME)」
フォーマット:「設定値」の値でARTICLEテーブルのNAME列に登録されていることを検証する

動作名:「ARTICLEテーブルへの登録を検証する(ARTICLE)」
フォーマット:「設定値」の値でARTICLEテーブルのARTICLE列に登録されていることを検証する

image.png
image.png
image.png
image.png
image.png
image.png

${isValidate}= validateNameColData ${value}
image.png
https://robotframework.org/robotframework/latest/libraries/BuiltIn.html
Run Keyword If '${isValidate}' == 'False' Fail TESTFAIL
image.png
image.png

3.作成したDB登録を検証するキーワード手順を追加する
image.png
image.png

3.テスト実行して結果を確認する

image.png
image.png

最後に

DBを初期化する処理も最後にあった方がいいかも。
より良いやり方があればまた追記します。

RobotframeworkのDatabaseLibraryを使用した方が楽かもです。
https://franz-see.github.io/Robotframework-Database-Library/api/0.5/DatabaseLibrary.html
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?