在自动化测试中使用Snapmail API

当涉及到网站的自动化测试时,您将需要解决使用户注册自动化的问题。 借助Snapmail API,您可以轻松完成它。

Web UI自动化测试中的示例步骤

  • 使用您想要的任何Snapmail电子邮件地址在您的网站中注册一个新用户,例如richard@snapmail.cc

  • 然后,您的电子邮件服务会将帐户验证电子邮件发送到richard@snapmail.cc

    你可以使用Snapmail SMTP来发邮件,如果你没有SMTP服务。 查看详情 >

    • 现在是时候使用Snapmail API来获取验证邮件了(Python, C#)。

        # Code in Python
        import time
        import requests
        import json
        import re
      
      
        def get_verification_code():
            # We want to get account validation code in email
            validation_code = None
            # We will retry the request every 6 seconds to get the email
            for i in range(50):
                # Get emails from an email box
                data = {
                    "key": "3b7bb46b-5564-xxxx-ac27-f59061361578",
                    "emailAddress": "test@snapmail.cc",
                    "isPrefix": False,
                    "page": 1,
                    "count": 1
                }
                req = requests.post('https://www.snapmail.cc/emaillist/filter', json=data)
                if req.status_code == 200:
                    # Get email text of the first email,
                    # take "This is a test email." for example,
                    # email_text = "This is a test email."
                    first_email = json.loads(req.text)[0]
                    if "text" in first_email:
                        email_text = first_email['text']
                    else:
                        email_text = first_email['html']
                    # Use regex to get the validation code, we'll get "test" here.
                    # validation_code = "test"
                    validation_code = re.search(r'This is a ([a-zA-Z0-9]{4}) email', email_text)
                    break
      
                print("Waiting for next retry")
                time.sleep(6)
            if validation_code:
                print('validation_code:' + validation_code.group(1))
                return validation_code.group(1)
      
      
        get_verification_code()
      
        // Code in C#
        using System;
        using System.Net.Http;
        using System.Net.Http.Json;
        using System.Text.RegularExpressions;
        using System.Threading;
        using System.Threading.Tasks;
      
        using Newtonsoft.Json.Linq;
      
        namespace ConsoleApp1
        {
            class Program
            {
                static HttpClient client = new HttpClient();
                static void Main(string[] args)
                {
                    Task t = new Task(GetValidationCode);
                    t.Start();
                    Console.ReadLine();
                }
      
                private static async void GetValidationCode()
                {
                    // Get emails from an email box
                    var url = "https://www.snapmail.cc/emaillist/filter";
                    // We want to get account validation code in email
                    var validation_code = "";
      
                    // We will retry the request every 6 seconds to get the email
                    for (int i = 0; i < 50; i++)
                    {
                        HttpResponseMessage response = await client.PostAsJsonAsync(url, new
                        {
                            key = "3b7bb46b-5564-xxxx-ac27-f59061361578",
                            emailAddress = "test@snapmail.cc",
                            isPrefix = false,
                            page = 1,
                            count = 1
                        });
                        // If the response status is 200
                        if (response.StatusCode == System.Net.HttpStatusCode.OK)
                        {
                            var result = await response.Content.ReadAsStringAsync();
                            // Get the emails in array format
                            var emails = JArray.Parse(result);
                            // Get the email text of first email, 
                            // take "This is a test email." for example.
                            // email_text = "This is a test email."
                            var email_text = emails[0]["text"].ToString();
                            Regex regex = new Regex("This is a ([a-zA-Z0-9]{4}) email");
                            Match match = regex.Match(email_text);
                            // Use regex to get the validation code, we'll get "test" here.
                            // validation_code = "test"
                            validation_code = match.Groups[1].Value;
                            Console.WriteLine(validation_code);
                            break;
                        }
                        Console.WriteLine("Waiting for next retry");
                        // Sleep 6 seconds
                        Thread.Sleep(6000);
                    }
      
                }
            }
        }
      
  • 您可以使用任何想要的电子邮件地址,建议在这种情况下使用前缀电子邮件地址,无需将其添加到Snapmail.cc

体验Snapmail

返回到博客首页