Ceci est un problème classique UFT, comment détectez-vous l'échec, et de bien répondre à votre question, nous devons comprendre les deux ci-dessous scénarios
1) Si vous savez quoi faire en cas d'échecs ou si votre objectif est de redémarrer l'exécution de l'itération de test/test en cours, vous pouvez utiliser le scénario de récupération et le configurer pour appeler une fonction de la bibliothèque de fonctions pour chaque erreur. appelé et alors vous pouvez faire ce que vous voulez.
Maintenant, cela ne fonctionne que si vous suivez le framework fourni par l'UFT pour l'exécution, et vous vous concentrez uniquement sur les erreurs, pas sur les échecs de flux d'exécution. 2) Si vous avez créé vos propres frameworks alors l'option 1 pourrait ne pas vous aider, car vos tests seront contrôlés par des feuilles d'entrée et votre framework doit passer au cas de test suivant pendant les exécutions. Donc ce que j'ai fait pour résoudre ce problème, c'est que j'ai créé une fonction de tunnel, tous les autres appels de fonction sont faits par cette fonction, donc dans votre cas OpenAUT et Login seront les appels de fonction dans cette fonction de tunnel. Donc, s'il y a une erreur dans l'une de ces fonctions, alors le contrôle entrera dans la condition If (à cause de la prochaine erreur).
La seule chose que vous devez vous assurer est OpenAut()
et LoginApp()
ne devrait pas avoir Suite à une erreur de reprise, cela devrait résoudre votre problème.Maintenant, cela permettra de s'assurer qu'il n'y a pas d'erreurs au cours des exécutions, mais il pourrait encore y avoir des échecs dans les fonctions, comme si vous cliquez sur connexion et l'ID utilisateur et le mot de passe est faux, la connexion échouera et pour cela vous devez mettre en œuvre une valeur de retour de la fonction, donc la prochaine chose que je vais faire est de retourner vrai ou faux de la fonction de prendre d'autres décisions nécessaires pendant les exécutions
donc votre fonction openAUT
devrait ressembler à
public function OPenUAT()
''Open App
if APP.Exist then
OPenUAT = true
else
OPenUAT = false
End If
End Function
et votre callAppropriatefunction
deviendra
Public Function CallAppropriateFunctions()
On Error Resume Next
Dim Results
Select Case expression
Case "OPENUAT"
Results = OpenAut()
Case "LoginAPP"
Results = LoginApp()
End Select
If Err.Number <> 0 Then
''Control will come here on error
End If
If Results = false then
'' Your function executed successfully but application produced a different '''''''result
End If
End Function
Vous pouvez lire l'article ci-dessous pour comprendre l'option 2
https://sumeetkushwah.com/2014/08/12/implementing-try-catch-functionality-in-qtpuft/