自家製クイックスモークテストガジェット - Pythonベースのマルチスレッド(1)

序文

プロジェクトの過程でテストされ、これらの状況は、多くの場合、以下を持っているが見つかりました:

•新しいバージョンのアップグレード後、時にはコードの構成や展開エラーがあるため、メニュー404または500は、同様のエラーを報告し;
•は、アップグレード後の職員の展開の実装を上記の問題を回避するために、あなたはすべてのメニューページを手動で喫煙する必要があります。
•同じ日にリリースと同様に、すべて手作業で何度も何度も返すようにチャンスを言及する措置を変更し、
プロジェクトサイクルが長くない•、それはビジネスプロセスを自動化する時間がありません。

すべてのメニューを手動で再び喫煙した場合、我々は5秒にそのメニューのページを想定し、メニュー項目は、600ページを持っている場合、その後、あなたは3000秒に必要な、完全な時間ああ、しかし、各アップグレード必見これ一度に。もう時間は、すべてのメニューのページのために再度訪問することを自動的に実現することができないすべての自動化機能を行われていないが、だから私は、考えて、そして判断は訪問の結果に基づいていない迅速な実行を行うために、正常ですスモークテスト?

実装手順の最初に、分析

アイデアと、それは達成するための方法を分析しなければなりません。最大の問題は、様々な試みの後を通じて得たどのようにすべてのメニューに対応するURLが、このプロジェクトは、理由の枠組みの中でクローラによって直接、すべてのURLを取得することができないことがわかったということです。

しかし、データベースに、eclp_A保存ドメインとして、バック2つのテーブルをしているフロントに対応して、各メニューのページのeclp_B具体的なパスは、あなただけの完全になって一緒にスプライスデータの2つのテーブルを取り出す必要があり、 URLの。

具体的な手順:

(1)データベース・クライアントとバックエンドの管理に新たなテーブル中にスプライシング取り出しドメイン名とパス(クライアントUCで、楽屋管理側はeclpである)、及び対応するアサーションキーワードを追加します。

(2)異なるプロジェクトデータベースの構成は同じではないので、構成ファイル内のデータベースの構成、および、プログラムを介して取得します。

(3)構成データベースを取得した後、テーブルからのすべてのURLを取得するためにデータベースに接続します。

(4)は、要求を横断するすべてのURLを取ることが、必要性はクッキーが結合することの後にクッキーを取得するには、ログインした後、ユーザーも必要とされているコンフィギュレーション・ファイルにログインするためのパスワードを使用する必要があります。

(5)全てのトラバースのURLにアクセスし、アクセス結果、成功と失敗の回数を記録します。

(6)プログラム実行中に問題を見つけるために、フォローアップを促進するために、成功と失敗のログが記録され、ページにアクセスします。

すべてのページにアクセスするためのURLが非常に遅いので、マルチプロセス又はマルチスレッドなアプローチになるので(7)以上であってもよいです。

(8)HTMLレポート出力を使用して、すべてのページビューの結果。

第二に、準備

データベースで1(ここではoracle)スプライスされたURL

1.1 URLを格納するテーブルを作成します。

メインテーブルのストレージドメイン名とパスをバックチェック

select t.*,t.rowid from eclp_A t orderby id desc;
select t.*,t.rowid from eclp_B t orderby id desc;

完全なURLを格納するテーブルを作成します。

CREATETABLE eclp_uc_url (
ID NUMBER(20) DEFAULT0  NOTNULL ,
SUB_SYSTEM_ID  NUMBER(20) DEFAULT0  NOTNULL ,
SUB_SYSTEM_CODEVARCHAR2(100 BYTE) DEFAULT''  NULL ,
NAME  VARCHAR2(255 BYTE) DEFAULT''  NULL ,
DOMAINVARCHAR2(100 BYTE) DEFAULT''  NULL ,
PATH VARCHAR2(100 BYTE)DEFAULT''  NULL ,
URL  VARCHAR2(100 BYTE) DEFAULT''  NULL ,
ASSERT_WORD  VARCHAR2(255 BYTE) DEFAULT''  NULL
)

主キーを作成します。

ALTERTABLE eclp_uc_url ADDPRIMARYKEY (ID);

创建id自增序列
drop SEQUENCE SEQ_ECLP_UC_URL;
CREATE SEQUENCE SEQ_ECLP_UC_URL
INCREMENTBY1
START WITH1
MAXVALUE9999999999999
CYCLE
CACHE 20;

ドメインとパス表の両方から1.2インサートは、新しいテーブルのURLに格納されています

eclp挿通路パステーブル

INSERTINTO eclp_uc_url(id,SUB_SYSTEM_ID,NAME,PATH) SELECTSEQ_ECLP_UC_URL.NEXTVAL,SUB_SYSTEM_ID,NAME,URL from eclp_A;

テーブルdomianにeclpドメイン名

updateeclp_uc_url set DOMAIN = (select DOMAIN from eclp_B whereeclp_uc_url.SUB_SYSTEM_ID = eclp_B.id)
whereexists (select 1 from eclp_B where eclp_uc_url.SUB_SYSTEM_ID =eclp_sub_system.id);

ドメインとパスは、URL内にスプライシング

MERGEINTO eclp_uc_url A
USING( select t.id, t.domain || '/' || t.path as urls from eclp_uc_url t) B ON (A.ID= B.ID)
WHENMATCHED THEN UPDATE SET A.URL = B.URLS;

2.フロントとバックオフィスのデータベースの設定とユーザープロファイル

DbUser.iniファイルを作成します。
データベース接続の設定、フロントとバックオフィスのユーザー情報が、そこに選択するブラウザ(クロム、Firefoxの、すなわち)

-----------------------------------------------------
注:我这有个学习基地,里面有很多学习资料,感兴趣的+Q群:895817687
-----------------------------------------------------
    [db]
    oracle_ip=127.0.0.1
    oracle_account=test_account
    oracle_password=test_password
    
    [eclp]
    center_url=http://127.0.0.1:8020/system/login.htm
    center_account=test01
    center_password=123456a
     
    [uc]
    uc_url=http://127.0.0.1:9001/login.htm
    uc_account=test02
    uc_password=123456a
    
    [driver]
    browser=chrome

3.台湾の前と後のログイン要素の配置プロファイル

これは、位置決め方位ユーザー名、パスワード、ログインボタン、UiObjectMap.iniを含み

[eclp]
LoginAccount=id>account
LoginPassword=id>password
LoginButton=xpath>//input[@class='btn2']

[uc]
LoginAccount=id>account
LoginPassword=id>password
LoginButton=id>button

(継続する:コードの実装)

おすすめ

転載: blog.csdn.net/weixin_42625143/article/details/95055182