windowsアプリテスト自動化 [friendly+delphi]
TRANSCRIPT
Friendly+Delphi
Windowsアプリテスト自動化
石川達也
Microsoft MVP for C#
株式会社Codeer代表取締役
C, C++, C#, Java, Delphi(1W)
自己紹介
Friendly とは?
Windowsアプリのテストを自動化するためのライブラリです。
目的
どちらかというと、システムテスト
①内部メソッドの呼び出し.Net
Field、Property、MethodNative
DLL公開関数
②DLLインジェクション
基本機能
Only One!
基本内部メソッド操作、DLLインジェクション
Win32(TXXにも使える)
WinForms WPF
GUI操作も簡単かつ確実にできる上位ライブラリも
Codeer で検索
eが一個多い
Nugetで無料で入手できます!
デモやります。
うちDelphiなんだけど?
話を聞くと、結構あります。
Windows系のDelphiアプリは、歴史あるアプリが多いようです。しかも、今もバージョンアップし続けています。
それらにこそ、自動化された回帰検査が必要!
デグレ厳禁!
・内部メソッドの呼び出し.Net
Field、Property、MethodNative
DLL公開関数
・DLLインジェクション
Delphiアプリに使える機能
結構、いける!
でも・・・
Delphiの内部メソッドも呼び出せるかも?
それができたら、超便利!
Type Target = class;public
class function Instance : Target; static;function Func(value : string ) : Int32;
end;
//ここは普通var app = new WindowsAppFriend(process);
//拡張メソッドで実現。//staticなメソッド呼び出し。dynamic obj = app.Delphi("Target").Instance();
//インスタンスのメソッド呼び出し。Int ret = obj.Func(“123”);
DLLインジェクション
FriendlyDelphi.dll
function InvokeStatic(pInvokeInfo : InvokeInfo) : ReturnInfo ; stdcall ;begin
//リフレクションを使って、指定のstaticメソッドを実行!end
function InvokeInstance(obj : TObject, pInvokeInfo : InvokeInfo) : ReturnInfo ; stdcall ;begin
//リフレクションを使って、対象のオブジェクトのメソッドを実行!end
FriendlyDelphi.dll
DLL公開関数呼び出し
FriendlyDelphi.dll
実行関数名、引数を渡す
dynamic obj = app.Delphi("Target").Instance();
Int ret = obj.Func(“123”);
内部でリフレクション実行!
FriendlyDelphi.dll
一緒に作ってくれる人募集中!
実は、Friendlyを使ったライブラリはいくつか作ってもらっています!
・Codeer.Friendly.Windows.NativeStandardControls
・Ong.Friendly.FormsStandardControls
・RM.Friendly.WPFStandardControls
・VSHTC.Frienldy.PinInterface
join us !
ご清聴ありがとうございました。よろしくお願いします。