目次: はじめに
序文
インターフェース自動化フレームワーク - データ駆動型
ここでのテストの入出力データは、データ ファイル (データ プール、ODBC ソース、CSV ファイル、EXCEL ファイル、Json ファイル、Yaml ファイル、ADO オブジェクトなど) から読み取られ、キャプチャ ツールまたは手動で生成されたコード スクリプトによって生成されます。変数にロードします。
このフレームワークでは、変数は入力値を格納するだけでなく、出力検証値を格納するためにも使用されます。プログラム全体を通じて、テスト スクリプトは数値ファイルを読み取り、テストのステータスと情報を記録します。
これは、テスト ケースがスクリプトではなくデータ ファイルに含まれるテーブル駆動テストに似ており、スクリプトはデータの単なる「ドライバー」、つまり配信メカニズムにすぎません。
もっと簡単に言うと、テスト データとテスト プロセスで使用されるコードは別々に記述され、別々に保存されます。
たとえば、データ appid-sercet とトークン インターフェイスのテストに使用される予想される結果は、事前にデータ ファイルに保存されます。
例:
プロジェクト内の access_token は公的に必要なテスト データです。生成は 1 回で、有効期間は 7200 秒です。通常、すべてのインターフェイス テストは 2 時間で実行できます。
トークン値を 1 回だけ取得してファイルに保存し、ファイル内のトークン値を使用してテストを完了します。
1. プロジェクトのルート ディレクトリに新しい conf フォルダーを作成し、その下に新しい config.ini ファイルを作成します。
2. 共通の py フォルダーに新しい ini_file_utils.py ファイルを作成し
、コードを記述します。
import os
import configparser
class IniFileUtils: #和框架业务无关的底层代码==》公共底层代码
def __init__(self,file_path):
self.ini_file_path = file_path
self.conf_obj = configparser.ConfigParser()
self.conf_obj.read(self.ini_file_path, encoding='utf-8')
def get_config_value(self,section, key):
value = self.conf_obj.get(section, key)
return value
def set_config_value(self,section, key, value):
self.conf_obj.set(section, key, value)
config_file_obj = open(self.ini_file_path, 'w')
self.conf_obj.write(config_file_obj)
config_file_obj.flush()
config_file_obj.close()
if __name__ == '__main__':
current_path = os.path.dirname(__file__)
config_file_path = os.path.join(current_path, '../conf/config.ini')
ini_file = IniFileUtils(config_file_path)
print(ini_file.get_config_value('default', 'HOSTS'))
ini_file.set_config_value('default','TOKEN_VALUE', 'SSS9090')
実行して結果を表示します。
ini 設定ファイルの token_value の値
3. local_config.py ファイルを書き換えて、ini ファイル内の値をカプセル化します。
コードを書きます:
import os
from common.ini_file_utils import IniFileUtils
current_path = os.path.dirname(os.path.abspath(__file__))
config_file_path = os.path.join(current_path, '../conf/config.ini')
class LocalConfig(): # #和框架业务有关系的底层代码
def __init__(self,file_path = config_file_path):
self.ini_file_obj = IniFileUtils(file_path)
@property
def get_hosts(self):
'''获取ini文件中的hosts值'''
hosts_value = self.ini_file_obj.get_config_value('default', 'hosts')
return hosts_value
@property
def get_token_value(self):
'''获取ini文件中的token_value值'''
token_value = self.ini_file_obj.get_config_value('default','token_value')
return token_value
local_config = LocalConfig()
if __name__ == '__main__':
print(local_config.get_hosts)
print(local_config.get_token_value)
実行結果を表示します。
4. common_function.py ファイルを変更し、取得したトークン値を ini ファイルに配置し、次の
コードを記述します。
import os
import jsonpath
from common.local_config import local_config
from common.common_api_info import CommonApiInfo
from common.ini_file_utils import IniFileUtils
current_path = os.path.dirname(os.path.abspath(__file__))
config_file_path = os.path.join(current_path, '../conf/config.ini')
def save_access_token_value_info_ini_file(session_obj,hosts):
"""获取access_token的值并写入到ini文件中"""
response = CommonApiInfo(session_obj,hosts).get_access_token_api('client_credential',
'wxf14419077f707856',
'92a113bd4b5ffdc72144740dc7123c99')
# 获取响应json中的access_token的值
token_value = jsonpath.jsonpath(response.json(), "$.access_token")[0]
# 把获取到的access_token值写入到ini文件中
IniFileUtils(config_file_path).set_config_value('default', 'token_value', token_value)
# return token_value
if __name__ == '__main__':
import requests
save_access_token_value_info_ini_file(requests.session(), local_config.get_hosts)
実行後、ini ファイルの token_value の値を確認します。
最新のトークン値が書き込まれています
5. run_api_tests.py ファイルを変更し、最初にトークン値を ini ファイルに書き込みます。
6. ユースケース層のコードを変更し、トークンのpyファイルを取得する
変更前と変更後のユースケース層のコードスクリプト。
修正後
トークンの py ファイルを取得します。
7. run_api_tests.py ファイルを実行し、実行結果を確認します。
レポートを見る
トークン値は Run_api_tests.py で生成され、ini 構成ファイルに与えられます。テストがトークン インターフェイスを取得すると、生成されたトークン値が呼び出されます。後で生成された値が以前の値を上書きして、ini 構成ファイルに問題が発生するのを防ぐためです。ファイルが無効になるには、テスト トークン インターフェイスを変更する必要があります。異なるアカウント (appid と Secret)
以下は、私がまとめた 2023 年の最も包括的なソフトウェア テスト エンジニア学習ナレッジ アーキテクチャ システム図です。 |
1. Python プログラミングの入門から習熟まで
2. インターフェース自動化プロジェクトの実践
3. Web自動化プロジェクトの実戦
4. アプリ自動化プロジェクトの実践
5. 一流メーカーの履歴書
6. DevOps システムのテストと開発
7. 一般的に使用される自動テストツール
8. JMeter パフォーマンス テスト
9. まとめ(最後にちょっとしたサプライズ)
闘争は人生の基礎であり、継続は成功のパスワードであり、卓越性を追求し、前進し、汗を流して素晴らしい音楽を作曲します。自分の可能性と才能を信じ、常に自分を超えて、自分だけの壮大な人生像を描きましょう!
積極的に挑戦し、果敢に人生のステージに乗り出し、夢を胸に抱き、輝かしい成功をしっかりと追い求めます。立ち止まらず、止まらず、情熱を捨てずに突き進んで、自分の力を信じて頑張って、人生の輝かしい一章を書きましょう!
自信が前途を照らし、汗が鮮やかな花を潤し、努力は限界を超え、夢は青春のメロディーに合わせて踊ります。情熱を貫き、距離を追い、あなただけの壮大な伝説を作りましょう。努力すれば才能が開花し、勇敢に前進して素晴らしい人生を手に入れましょう!