自动化测试~模块篇

简介:
  • 介绍

本篇介绍自动化测试的模块划分。

模块划分、用例切割、函数以及类的封装,从某个角度来看,都可以提高代码的可复用性。代码只有可复用了,才能一步步地减轻自动化测试人员的工作量。如果,还没有在一个项目中写了超过30个类的话,可以跳过本篇——也许你无法理解复用的重要程度。

本文介绍的自动化测试框架采用Java注解类的方式来进行模块的划分,而模块类可以是一个普通的Java类,也可以实现框架提供的方便使用的接口(EngineAware、WebDriverAware)。而涉及的注解包括:AutoModule、AutoApplication。先给出一个简单的示例:

import org.suren.autotest.web.framework.annotation.AutoModule;

/**
 * @author suren
 */
@AutoModule(name = "loginModule")
public class UserModule
{
    public void login(){}
    
    public void logout() {}
    
    public void updateProfile() {}
}
  • AutoModule

该注解有三个属性:name、description、acceptExcetpion。name属性即模块的名称,description为模块描述信息。这些信息都将会在测试报告中得到体现。

  • AutoApplication

该注解有五个属性:name、description、customEnvInfo、concernMailList、scanBasePackages。name属性为独立测试流程的名称,将会在测试报告中有体现。

  • EngineAware

如果您的模块类实现该接口的话,就可以拿到SettingUtil类的实例,以便后续获取Page类等等操作:

import org.suren.autotest.web.framework.annotation.AutoModule;
import org.suren.autotest.web.framework.core.EngineAware;
import org.suren.autotest.web.framework.settings.SettingUtil;

/**
 * @author suren
 */
@AutoModule(name = "loginModule")
public class UserModule implements EngineAware
{
    private SettingUtil util;
    
    public void login()
    {
        util.getPage("LoginPage");
    }

    public void logout()
    {
        util.getPage("LogoutPage");
    }

    public void updateProfile() {}

    @Override
    public void setEngine(SettingUtil settingUtil)
    {
        this.util = settingUtil;
    }
}
  • WebDriverAware

通过该实现类,就能拿到Selenium框架中的webDriver示例,调用Selenium的原生api:

import org.openqa.selenium.WebDriver;
import org.suren.autotest.web.framework.annotation.AutoModule;
import org.suren.autotest.web.framework.selenium.WebDriverAware;

/**
 * @author suren
 */
@AutoModule(name = "loginModule")
public class UserModule implements WebDriverAware
{
    private WebDriver webDriver;

    public void login(){}

    public void logout() {}

    public void updateProfile() {}

    @Override
    public void setWebDriver(WebDriver webDriver)
    {
        this.webDriver = webDriver;
    }
}
  • 测试流程
import org.suren.autotest.web.framework.annotation.AutoApplication;
import org.suren.autotest.web.framework.selenium.SeleniumEngine;
import org.suren.autotest.web.framework.settings.DriverConstants;
import org.suren.autotest.web.framework.settings.SettingUtil;
import org.suren.autotest.web.framework.util.ThreadUtil;

import java.io.IOException;

/**
 * @author suren
 */
@AutoApplication
public class AnnoTest
{
    public static void main(String[] args) throws IOException
    {
        SettingUtil util = new SettingUtil(AnnoTest.class);
        SeleniumEngine engine = util.getEngine();
        engine.setDriverStr(DriverConstants.DRIVER_CHROME);
        engine.init();

        UserModule module = util.getModule(UserModule.class);
        module.login();
    }
}
  • 系列文章

自动化测试,从入门到放弃

自动化测试~模块篇

自动化测试~数据源

自动化测试~参数化

自动化测试~元素定位

自动化测试框架介绍

  • 参考

本文为原创,如果您当前访问的域名不是surenpi.com,请访问“素人派”。

目录
相关文章
|
1月前
|
安全 测试技术
BOSHIDA DC电源模块的安全性能评估与测试方法
BOSHIDA DC电源模块的安全性能评估与测试方法
 BOSHIDA DC电源模块的安全性能评估与测试方法
|
1月前
|
安全
DC电源模块的安全性能评估与测试方法
DC电源模块的安全性能评估与测试方法 DC电源模块的安全性能评估与测试方法应包括以下几个方面: 1. 输入安全性测试:包括输入电压范围、输入电压稳定性、输入电流范围、输入电流保护等方面的测试。测试方法可以是逐步增加输入电压或输入电流,观察模块的工作状态和保护功能。
DC电源模块的安全性能评估与测试方法
|
4月前
|
传感器 机器人 测试技术
BOSHIDA DC电源模块在工业自动化中的关键应用案例分析
BOSHIDA DC电源模块在工业自动化中的关键应用案例分析 DC电源模块在工业自动化中有许多关键应用案例,以下是其中的一些:
BOSHIDA DC电源模块在工业自动化中的关键应用案例分析
|
4月前
|
人工智能 自然语言处理 测试技术
软件测试/人工智能|LangChain核心模块Agents详解
软件测试/人工智能|LangChain核心模块Agents详解
91 0
|
29天前
|
传感器 监控 算法
【软件设计师备考 专题 】模块测试的方法和实践
【软件设计师备考 专题 】模块测试的方法和实践
71 0
|
2月前
|
调度
【技术探讨】无线通信模块拉距测试,是否一定要带笔记本电脑?
对于Sub-G的无线模块通常通信距离较远可以达到公里级甚至数公里之远,而笔记本的续航时间通常是2-3个小时,很多用户测试到一半,不得不提前终止测试,回去给笔记本电脑充电
|
2月前
|
传感器 监控
BOSHIDA DC电源模块在工业自动化中的应用案例分析
BOSHIDA DC电源模块在工业自动化中的应用案例分析 BOSHIDA DC电源模块在工业自动化中有很多应用案例,以下是其中几个典型的例子:
BOSHIDA   DC电源模块在工业自动化中的应用案例分析
|
3月前
|
Linux iOS开发 MacOS
Python 自动化指南(繁琐工作自动化)第二版:附录 A:安装第三方模块
Python 自动化指南(繁琐工作自动化)第二版:附录 A:安装第三方模块
25 0
|
3月前
|
人工智能 网络协议 数据中心
通义千问关于网络模块的专业知识能力正确率测试
通义千问是一个大型语言模型,旨在通过对话形式提供各种领域知识和信息,帮助用户解决问题、获取见解和进行交互式学习。
39 0
|
3月前
|
Python
Python办公自动化【Excel查询重复数据、Excel提取身份证号信息、Python操作Excel模块库文档、Python操作Word基础 】(四)-全面详解(学习总结---从入门到深化)
Python办公自动化【Excel查询重复数据、Excel提取身份证号信息、Python操作Excel模块库文档、Python操作Word基础 】(四)-全面详解(学习总结---从入门到深化)
35 0