WEB开发网
开发学院软件开发C语言 网站测试自动化系统—在测试代码中硬编码测试数据... 阅读

网站测试自动化系统—在测试代码中硬编码测试数据

 2010-09-30 22:42:51 来源:WEB开发网   
核心提示: 在上面的代码中,我也把等待网页刷新的时间设置成常量,网站测试自动化系统—在测试代码中硬编码测试数据(5),对于在测试代码中使用事先在基准数据库中准备的测试数据,需要一点编程技巧

在上面的代码中,我也把等待网页刷新的时间设置成常量。对于在测试代码中使用事先在基准数据库中准备的测试数据,需要一点编程技巧。请先看下面的代码,下面的代码是一段记录通过网页操作创建文章的代码:

public class Blog : UIHelperBase
{
    // 博客的标题
    public string Title { get; private set; }
 
    // 博客的超链接
    public string Permalink { get; private set; }
 
    // 博客的超链接文本
    public string MenuText { get; private set; }
 
    public string Owner { get; private set; }
 
    public Blog(TestLibrary settings, string title,
        string permalink, string menutext, string owner)
        : base(settings)
    {
        Title = title;
        Permalink = permalink;
        MenuText = menutext;
        Owner = owner;
    }
 
    // 通过网页界面的操作创建一篇新文章
    //
    // PostSetting是一个结构,包含了一篇新文章的所有元素,
    // 例如文章标题,内容等等.
    public Post CreatePost(PostSettings settings)
    {
        if (settings == null)
            throw new CaseErrorException(new ArgumentNullException("settings"));
        if (!String.IsNullOrEmpty(settings.Body))
            throw new CaseErrorException("Set post body is not implemented yet!");
        if (settings.PublishDateTime.HasValue)
            throw new CaseErrorException("PublishDateTime is not implemented yet!");
 
        // selenium这个变量,你可以想象成是一个正在浏览网页的网友的封装
        selenium.Open("/");
        selenium.Click("link=Admin");
        selenium.WaitForPageToLoad(TestLibrary.Consts.TimeToWaitForPageToLoad);
        selenium.Click("link=Manage Blogs");
        selenium.WaitForPageToLoad("60000");
        selenium.Click(String.Format("link={0}", Title));
        selenium.WaitForPageToLoad(TestLibrary.Consts.TimeToWaitForPageToLoad);
        selenium.Click("link=New Post");
        selenium.WaitForPageToLoad(TestLibrary.Consts.TimeToWaitForPageToLoad);
        selenium.Type("Routable_Title", settings.Title);
        selenium.Type("Tags", settings.Tags);
 
        if (settings.Permalink != null)
            selenium.Type("Routable_Slug", settings.Permalink);
        if (settings.DisableNewComments)
            selenium.Click("CommentsActive");
 
        if (settings.PublishSetting == PostSettings.PublishSettings.PublishNow)
            selenium.Click("Command_PublishNow");
        else if ( settings.PublishSetting == PostSettings.PublishSettings.PublishLater )
            throw new CaseErrorException("PublishLater is not implemented yet!");
 
        selenium.Click("submit.Save");
        selenium.WaitForPageToLoad(TestLibrary.Consts.TimeToWaitForPageToLoad);
 
        return new Post(TestSettings, settings, this);
    }
}
 
public class PostSettings
{
    public enum PublishSettings
    {
        SaveDraft,
        PublishNow,
        PublishLater
    }
 
    public string Title { get; set; }
 
    public string Permalink { get; set; }
 
    public string Body { get; set; }
 
    public string Tags { get; set; }
 
    public bool DisableNewComments { get; set; }
 
    public PublishSettings PublishSetting { get; set; }
 
    public DateTime? PublishDateTime { get; set; }
}
 
public class Post : UIHelperBase
{
// 当初创建文章的原始详细信息
    public PostSettings Settings { get; private set; }
 
    // 文章的标题 – 从网页上获取
    public string Title { get { return selenium.Read(...); } }
 
// 下面省略文章相关的操作若干
// ...
 
    public Post(TestLibrary settings, PostSettings postSettings, Blog blog)
        : base(settings)
    {
        Settings = postSettings;
        ContainerBlog = blog;
}
 
// 下面省略文章相关的操作若干
// ...
 
}

上一页  1 2 3 4 5 6 7  下一页

Tags:网站 自动化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接