KASAです
松も明けてもう2月になりますが最近ネタがなかったものでご無沙汰しておりました

最近セキュリティの対策としてWebサイトの認証でSMSやメールでワンタイムパスワードが送信される方式が増えました。
セキュリティの向上としては好ましいことなんですが、Webサイトを自動試験をしようとすると結構面倒です。

ユーザー名やパスワードは予め判っていますが、ワンタイムパスワードはログインしようとしたタイミングでないと判りません。
それもメールなどで通知されるため、自動試験実行中にメールを受信して解析してワンタイムパスワードを取得する処理を追加する必要があります。
元々Excel+Seleniumで自動試験を構築していたのでExcelでメール操作を検討していたのですが、これがメールサーバーへのアクセスとかが結構面倒

諦めかけていたのですが、ふっとOutlookでもVBAが使えることを思い出しました。
Outlookはメールソフトでもあるのでメールの操作は簡単、20行ほどでメール受信時にメールを解析し、
それが特定サイトのワンタイムパスワードメールと判ったら、ユーザー名と渡されたワンタイムパスワードをExcelのシートに書き込むVBAを作成しました。
このおかげで、元々の自動試験の流れの中にこのExcelファイルから、ログインしたユーザー名と一致するワンタイムパスワードを探して
このワンタイムパスワードを入力する部分を追加してやることでなんとか自動試験の目途が立ちました。
ばんざーい
▼この記事がいいね!と思ったらブックマークお願いします
