一、需要类库
abbot库:abbot-1.0.0.rc5.zip
TestNG库:testng-5.5.zip
TestNG-Abbot库:testng-abbot-0[1].3.2-030807.zip
TestNG-Eclipse的插件:testng-eclipse-5.5.0.0.zip
二、测试类代码
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class WordFinder extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
 private JLabel labWord = new JLabel("Word");
 private JTextField textWord = new JTextField(10);
 private JLabel lblResult = new JLabel();
 JButton button = new JButton("Find Word");
 
 public WordFinder() throws HeadlessException {
  super("Word Finder");
  setLayout(new GridLayout(3,1,10,10));
  
  //
  JPanel p = new JPanel();
  p.setLayout(new FlowLayout(FlowLayout.LEFT,10,10));
  p.add(labWord);
  textWord.setName("textWord");
  p.add(textWord);
  add(p);
  
  //
  lblResult.setName("lblResult");
  add(lblResult);
  
  //
  button.setName("button");
  button.addActionListener(this);
  add(button);
  
  //
  addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent evt) {
    System.exit(0);
   }
  });
 
 }
public static void main(String[] args) {
  WordFinder frame = new WordFinder();
  frame.pack();
  frame.setVisible(true);
 }
public void actionPerformed(ActionEvent arg0) {
  lblResult.setText("Enter " + textWord.getText());
  textWord.requestFocus();
 }
}
三、测试代码
import java.awt.Dimension;
import org.testng.abbot.AbbotFixture;
import org.testng.abbot.fixture.JButtonFixture;
import org.testng.abbot.fixture.JLabelFixture;
import org.testng.abbot.fixture.JTextComponentFixture;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class WordFinderGUITest {
 public AbbotFixture fixture;
 
 @BeforeMethod
 public void initializeGUI() {
  fixture = new AbbotFixture();
  fixture.showWindow(new WordFinder(),new Dimension(200,200));
 }
 
 @AfterMethod
 public void tearDownGUI() {
  fixture.cleanUp();
 }
 
 @Test
 public void assertDefinitionPresent() {
  String text = "MCY";
  JTextComponentFixture text1 = new JTextComponentFixture(this.fixture,"textWord");
  text1.enterText(text);
  
  JButtonFixture bfix = new JButtonFixture(this.fixture, "button");
  bfix.click();
  
  JLabelFixture lfix = new JLabelFixture(this.fixture, "lblResult");
  lfix.shouldHaveThisText("Enter " + text);
 }
}

相当漂亮的功能

使用TestNG-abbot测试GUI相关推荐

  1. java自动化测试报告_Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  2. java 自动化测试报告_Java自动化测试框架-10 - TestNG之测试结果篇

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  3. java testng 优化_Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  4. pit和systick_PIT和TestNG突变测试简介

    pit和systick 变异测试是一种技术,它可以发现测试未涵盖代码的哪些部分. 它类似于代码覆盖范围 ,但变异测试不限于在测试期间执行给定行的事实. 这个想法是修改生产代码(引入突变),这应该改变其 ...

  5. PIT和TestNG突变测试简介

    变异测试是一种技术,它可以发现测试未涵盖代码的哪些部分. 它类似于代码覆盖范围 ,但变异测试不限于在测试期间执行给定行的事实. 这个想法是修改生产代码(引入突变),这应该改变其行为(产生不同的结果)并 ...

  6. testng入门教程10 TestNG参数化测试

    在TestNG的另一个有趣的功能是参数测试.在大多数情况下,你会遇到这样一个场景,业务逻辑需要一个巨大的不同数量的测试.参数测试,允许开发人员运行同样的测试,一遍又一遍使用不同的值. TestNG让你 ...

  7. testng 忽略测试_TestNG忽略或禁用测试

    testng 忽略测试 Sometimes we want to ignore a TestNG test method, there are many ways to achieve this. 有 ...

  8. Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  9. NUnitForms 测试GUI应用程序的优秀工具

    著名的NUnit是单元测试的优秀工具,但是要在一个测试方法中启动GUI程序,比如Windows Form界面,这比较难做到.NUnitForms就是为解决这个问题产生的,它是NUnit的一个扩展程序, ...

  10. TestNG并行测试

    并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者子组件的能力.TestNG允许我们以并行(多线程)的方式来执行测试.这就意味着基于TestNG测试组 ...

最新文章

  1. python中not 和 is None的区别
  2. 吴思教授:揭秘视觉信息处理的闭环
  3. Nginx禁止特定用户代理(User Agents)访问(转)
  4. java如何获取明天的时间_java获取各种格式的时间,获取昨天明天日期,获取一天的开始结束时间...
  5. ASP.NET MVC视图引擎SPARK文档中文版
  6. 项目前端页面框架介绍
  7. GraphQL 的前世今生
  8. 工业以太网交换机的安全问题详解
  9. java中LinkedList类的操作
  10. 三位bcd加法计数器_两个8位BCD编号的加法| 8085微处理器
  11. Spring 实践 -拾遗
  12. Python框架篇之Django(路由系统URL、视图函数views)
  13. navicat工具查看MySQL数据库_表占用容量_占用空间是多少MB---Linux工作笔记048
  14. OpenCV-基本图形绘制(圆、矩形、椭圆)
  15. 第6次结对作业--郑锦伟古维城
  16. 计算机专用英语词汇1695个词汇表(传)
  17. html相册制作成视频,怎么把照片制作成视频,视频相册制作免费软件|特效多多
  18. 安装wordcloud库的方法
  19. Mac直接拔掉移动硬盘无法识别或识别要很久的解决方法
  20. 看完南京前11年房价,我哭了!今年实在太特么狠了

热门文章

  1. ubuntu命令安装中文语言包_Ubuntu 18.04 LTS 命令行方式安装中文语言包
  2. Hybird开发之webview
  3. 批处理之for用法大全
  4. 主流七款web服务器软件点评,几款比较好的WEB服务器软件推荐
  5. 【组合数学】组合恒等式总结 ( 十一个组合恒等式 | 组合恒等式证明方法 | 求和方法 ) ★
  6. 又是被自己菜哭的一天。。
  7. 软件工程 选课系统的uml类图_软件工程课程设计-基于UML的学生选课系统的软件工程课程设计 精品推荐...
  8. 买二手iphone的建议
  9. ajax 上传图片所旅途,Ajax上传图片以及上传之前先预览
  10. 色不迷人人自迷,情不伤人人自伤