用java程序登录应用程序,自动化测试
来源:互联网 发布:组策略隐藏网络配置 编辑:程序博客网 时间:2024/06/02 06:31
用java程序登录应用程序,自动化测试
下面的获取屏幕位置代码可以直接使用,打开运用程序进行测试需要根据你的具体情况使用代码,例如”D:\lanqiao\lanqiao2006.exe”是运用程序的位置。后续获取位置,可以使用最后一段代码在页面获取后使用,web项目自动测试工具还可以使用selenium
首先,打开运用程序
【打开运用程序示例】
package cn.com.robotest;import javax.imageio.ImageIO;import java.awt.*;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;public class RobotTest{ public static void main(String[] args) throws AWTException, InterruptedException, IOException { Runtime rt = Runtime.getRuntime(); try { rt.exec("D:\\lanqiao\\lanqiao2006.exe"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // }}
打开运用程序后进行登录操作,并进行后续操作
【公共方法示例】
package cn.com;import java.awt.Rectangle;import java.awt.Robot;import java.awt.Toolkit;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import java.awt.image.BufferedImage;import javax.swing.Icon;import javax.swing.ImageIcon;public class CommonAuto { /** * 鼠标单击(左击),要双击就连续调用 * * @param r * @param x * x坐标位置 * @param y * y坐标位置 * @param delay * 该操作后的延迟时间 */ public static void clickLMouse(Robot r, int x, int y, int delay) { r.mouseMove(x, y); r.mousePress(InputEvent.BUTTON1_MASK); r.delay(10); r.mouseRelease(InputEvent.BUTTON1_MASK); r.delay(delay); } /** * 鼠标右击,要双击就连续调用 * * @param r * @param x * x坐标位置 * @param y * y坐标位置 * @param delay * 该操作后的延迟时间 */ public static void clickRMouse(Robot r, int x, int y, int delay) { r.mouseMove(x, y); r.mousePress(InputEvent.BUTTON3_MASK); r.delay(10); r.mouseRelease(InputEvent.BUTTON3_MASK); r.delay(delay); } /** * 键盘输入(一次只能输入一个字符) * * @param r * @param ks * 键盘输入的字符数组 * @param delay * 输入一个键后的延迟时间 */ public static void pressKeys(Robot r, int[] ks, int delay) { for (int i = 0; i < ks.length; i++) { r.keyPress(ks[i]); r.delay(10); r.keyRelease(ks[i]); r.delay(delay); } } /** * 复制 * * @param r * @throws InterruptedException */ void doCopy(Robot r) throws InterruptedException { Thread.sleep(3000); r.setAutoDelay(200); r.keyPress(KeyEvent.VK_CONTROL); r.keyPress(KeyEvent.VK_C); r.keyRelease(KeyEvent.VK_CONTROL); r.keyRelease(KeyEvent.VK_C); } /** * 粘贴 * * @param r * @throws InterruptedException */ void doParse(Robot r) throws InterruptedException { r.setAutoDelay(500); Thread.sleep(2000); r.mouseMove(300, 300); r.mousePress(InputEvent.BUTTON1_MASK); r.mouseRelease(InputEvent.BUTTON1_MASK); r.keyPress(KeyEvent.VK_CONTROL); r.keyPress(KeyEvent.VK_V); r.keyRelease(KeyEvent.VK_CONTROL); r.keyRelease(KeyEvent.VK_V); } /** * 捕捉全屏慕 * * @param r * @return */ public Icon captureFullScreen(Robot r) { BufferedImage fullScreenImage = r.createScreenCapture(new Rectangle( Toolkit.getDefaultToolkit().getScreenSize())); ImageIcon icon = new ImageIcon(fullScreenImage); return icon; } /** * 捕捉屏幕的一个矫形区域 * * @param r * @param x * x坐标位置 * @param y * y坐标位置 * @param width * 矩形的宽 * @param height * 矩形的高 * @return */ public Icon capturePartScreen(Robot r, int x, int y, int width, int height) { r.mouseMove(x, y); BufferedImage fullScreenImage = r.createScreenCapture(new Rectangle( width, height)); ImageIcon icon = new ImageIcon(fullScreenImage); return icon; }}
【登录并进行后续操作示例】
package cn.com;import java.awt.AWTException;import java.awt.Dimension;import java.awt.Robot;import java.awt.Toolkit;import java.awt.event.KeyEvent;import java.io.IOException;public class AutoTest { public static void main(String[] args) throws AWTException, InterruptedException, IOException { Robot robot = new Robot(); //设置Robot产生一个动作后的休眠时间,否则执行过快 //获取屏幕分辨率 Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); double height=900; System.out.println(d); Runtime rt = Runtime.getRuntime(); try { rt.exec("D:\\lanqiao\\lanqiao\\lanqiao2006.exe"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // robot.setAutoDelay(5000); robot.mouseMove(500, 500); robot.setAutoDelay(500); int[] login = { KeyEvent.VK_SHIFT,KeyEvent.VK_S,KeyEvent.VK_Y,KeyEvent.VK_0,KeyEvent.VK_5,KeyEvent.VK_0,KeyEvent.VK_TAB, KeyEvent.VK_1,KeyEvent.VK_2,KeyEvent.VK_3,KeyEvent.VK_4,KeyEvent.VK_5,KeyEvent.VK_6, KeyEvent.VK_ENTER};//登录 CommonAuto.pressKeys(robot, login, 50); CommonAuto.clickLMouse(robot,300, (int) ((double)847/900*height), 3000);//营运管理 CommonAuto.clickLMouse(robot, 457, (int) ((double)208/900*height), 3000);//受理开单 CommonAuto.clickLMouse(robot, 299, (int) ((double)152/900*height), 3000);//时间 int[] time = {KeyEvent.VK_LEFT,KeyEvent.VK_LEFT,KeyEvent.VK_LEFT,KeyEvent.VK_LEFT,KeyEvent.VK_LEFT, KeyEvent.VK_2,KeyEvent.VK_0,KeyEvent.VK_1,KeyEvent.VK_6,KeyEvent.VK_RIGHT,KeyEvent.VK_1,KeyEvent.VK_RIGHT,KeyEvent.VK_1};//时间 CommonAuto.pressKeys(robot, time, 50); CommonAuto.clickLMouse(robot, 882, (int) ((double)152/900*height), 60000);//提取 CommonAuto.clickLMouse(robot, 527, (int) ((double)838/900*height), 3000);//导出 int[] name = {KeyEvent.VK_2,KeyEvent.VK_0,KeyEvent.VK_1,KeyEvent.VK_6};//时间 CommonAuto.pressKeys(robot, name, 50); CommonAuto.clickLMouse(robot, 629, (int) ((double)480/900*height), 3000);//保存 }}
当需要获取屏幕位置时,可以使用如下代码,可直接使用
【代码示例】
package cn.com.robotest;import java.awt.FlowLayout;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.JFrame;import javax.swing.JLabel;@SuppressWarnings("serial")public class PositionOfMouse extends JFrame{ private JLabel label; public PositionOfMouse(){ super("测试程序");//建立新窗体 this.setSize(400,300);//设置窗体的宽和高 this.setVisible(true);//设置窗体可见 this.setLayout(new FlowLayout(FlowLayout.CENTER));//框架流布局且居中对齐 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点击关闭按钮时的默认操作 final JLabel label = new JLabel("此处显示鼠标右键点击的坐标"); this.add(label); // 将标签放入窗体 // label.setText("3"); this.addMouseListener(new MouseAdapter(){ //匿名内部类,鼠标事件 public void mouseClicked(MouseEvent e){ //鼠标完成点击事件 if(e.getButton() == MouseEvent.BUTTON3){ //e.getButton就会返回点鼠标的那个键,左键还是右健,3代表右键 int x = e.getX(); //得到鼠标x坐标 int y = e.getY(); //得到鼠标y坐标 String banner = "鼠标当前点击位置的坐标是" + x + "," + y; System.out.println("鼠标当前点击位置的坐标是" + x + "," + y); label.setText(banner); //修改标签内容 } } }); } public static void main(String[] args) { // TODO 自动生成的方法存根 new PositionOfMouse(); }}
阅读全文
0 0
- 用java程序登录应用程序,自动化测试
- 用maven自动化测试java web应用程序页面的配置
- 用python进行应用程序自动化测试(uiautomation)
- selenium自动化登录测试用例
- 一个登录的自动化测试用例(新手)
- APPIUM+JAVA自动化测试
- selenium java自动化测试
- selenium java自动化测试
- Web 应用程序用户界面低层测试自动化
- 批处理脚本实现android应用程序自动化测试
- Webdriver UI自动化测试 实现自动登录
- 基于MonkeyRunner的自动化测试---登录实例
- Python selenium自动化测试 登录CSDN实例
- selenium实现登录页面的自动化测试
- Webdriver自动化测试案例--客户登录
- 用native driver 对android 程序进行自动化测试
- 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试
- Java自动化测试(一)
- Windows下使用Hexo+GithubPage搭建博客
- CSDN
- C# 线程中打开新窗体
- 高通常用缩写
- python3爬取淘宝信息
- 用java程序登录应用程序,自动化测试
- juc--CopyOnWriteArrayList
- 拥有数据不再重要,懂得利用才是王道
- 【项目管理和构建】——Maven简介(一)
- Vue.js 中 v-if 和 v-show 有什么区别?(转)
- 在CentOS7下获取Mac地址的值
- 网络地址转换NAT和代理服务器
- easyui图片上传demo
- BP神经网络后向传播算法