【优雅代码】02-自动化工具合集介绍

简介: 在日常工作中总会需要重复的工作,而作为一个现代人,应该学会使用工具避免重复的工作。java能做很多事情不止是web方向,而如果不限于java能做的事情就更多了。

【优雅代码】02-自动化工具合集介绍

欢迎关注b站账号/公众号【六边形战士夏宁】,一个要把各项指标拉满的男人。该文章已在 github目录收录。
屏幕前的 大帅比大漂亮如果有帮助到你的话请顺手点个赞、加个收藏这对我真的很重要。别下次一定了,都不关注上哪下次一定。

1.背景介绍

在日常工作中总会需要重复的工作,而作为一个现代人,应该学会使用工具避免重复的工作。java能做很多事情不止是web方向,而如果不限于java能做的事情就更多了。

2.黑盒自动化

以下介绍的软件基本以python为主,当然有些也可以用java编写

平台 软件
web Selenuim
Android appium
ios xcode
windows pyautogui/AutoIt
mac pyautogui/AppleScript

这里以pyautogui作为介绍,因为其泛用性最广,手机端也可以用模拟器配合这个东西跑,但是web和移动端并不如专门的那么好用就是。如下程序演示了使用谷歌浏览器的必应查询Hello world后截取左上角微软图标文字同时进行输出。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
import time
import pyautogui
from PIL import Image
import pytesseract

subprocess.Popen('C:\Program Files (x86)\Google\Chrome\Application\chrome.exe')
time.sleep(1)
# pip install pyautogui
pyautogui.click(773, 326)
pyautogui.typewrite('Hello world!\n')
# pip install pillow
time.sleep(1)
# 截图 x,y,宽,高
path = 'F:\屏幕截图.png'
im = pyautogui.screenshot(region=(42, 140, 100, 50))
im.save(path)
# pip install pytesseract
pytesseract.pytesseract.tesseract_cmd = r'D:\Tesseract\tesseract.exe'
# https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.0.0-alpha.20200328.exe
text = pytesseract.image_to_string(Image.open(path))  # 调用识别引擎识别
# 输出 Microsoft Bing
print(text.replace("\n", "").replace("\f", ""))
print("finish")

整理一下逻辑就是对于定位一般性可以采用pyautogui的图片定位(如果不行采用坐标定位),如果需要截取文字,能够复制的就直接双击鼠标选择当行然后ctrl+c复制下来,再通过剪切板拿到数据,不能复制的就通过坐标截取图片再用OCR获取内容。以此为基础基本可以满足所有个人自动化需求了,写个普通脚本都不在话下。不吹不黑,靠这些东西笔者是真的写过游戏脚本和交易脚本。

4.黑盒抓包

抓包不只是在pc端最关键是它可以辅助在app上抓包,抓到未加密连接破解后配合黑盒自动化效果更佳。这里仅介绍两个代表,windows使用fiddler,mac使用charless

4.1fiddler

fiddler
抓包测试链接
https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=20

4.2charless

2charless

4.白盒测试工具

这里仅介绍postman和jmeter,使用方式上jmeter要更加全面,支持更多的协议。postman作为http测试一直非常优秀,而jmeter在性能测试方面则非常优异,甚至是数据库。

4.1postman

postman

4.2jmeter

jmeter
jmeter

5.软件打包转为可执行程序

将自动化程序打包成软件自动运行也是非常重要的一步,当你的自动化软件日趋成熟就会有分享,甚至本身就是为了解决某个MM的问题,总不能给别人是bat文件吧。桌面端推荐vue+electron进行打包核心逻辑可调用java。推荐这个主要是vscode、typora都是以electron进行研发的,并且中文文档很详细。

文档截图

最重要的一点:不要把语言学死了,主力开发肯定是以熟悉的语言为主,最需要掌握的是语言之间相互调用就可以完成很多看似很难的工作。

6.junit单元测试

6.1准备工作

注意scope是test,所以要在test目录下才能生效

 <!-- spring-test-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
    </exclusions>
</dependency>    

6.2注解运行流程

junit

6.3建立单元测试

建立两个一样的类

public class MyJunit {
    public void method1() {

    }

    public void method2() {

    }

    public void method3() {

    }

    public static void main(String[] args) {

    }
}
public class MyJunit2 {
    public void method1() {

    }

    public void method2() {

    }

    public void method3() {

    }

    public static void main(String[] args) {

    }
}

ctrl+shift+t建立相应单元测试,并填写assert方法

// 如果有需要运行springBoot容器填写该注解
// @SpringBootTest
class MyJunitTest {

    @Test
    void method1() {
        assertEquals(1, 1);
    }

    // 注意此处不相等会报错
    @Test
    void method2() {
        assertEquals(1, 2);
    }

    @Test
    void method3() {
        assertEquals(1, 1);
    }
}

运行结果如下,每次都可以批量执行单元测试避免因为小改动改出某个bug
junit

相关文章
|
1月前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
3月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
82 3
|
3月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
70 4
|
3月前
|
运维 Linux Apache
Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例
【10月更文挑战第8天】本文介绍了Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例。Puppet通过定义资源状态和关系,确保系统配置始终如一,支持高效管理基础设施。文章详细讲解了Puppet的安装步骤、配置方法及DSL语言示例,帮助读者快速掌握Puppet的使用技巧。
102 2
|
3月前
|
监控 虚拟化 云计算
从物理到云:使用自动化工具简化服务器迁移流程
【10月更文挑战第4天】随着云计算的快速发展,越来越多的企业选择将物理服务器迁移到云环境以提高效率和降低成本。本文详细介绍了使用自动化工具简化从物理到云的服务器迁移流程的技术实现细节,并提供了代码示例。
177 6
|
27天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
150 17
Selenium:强大的 Web 自动化测试工具
|
1月前
|
运维 Kubernetes Devops
自动化运维:从脚本到工具的演进之旅
在数字化浪潮中,自动化运维成为提升效率、保障系统稳定的关键。本文将探索自动化运维的发展脉络,从基础的Shell脚本编写到复杂的自动化工具应用,揭示这一技术变革如何重塑IT运维领域。我们将通过实际案例,展示自动化运维在简化工作流程、提高响应速度和降低人为错误中的重要作用。无论你是初学者还是资深专家,这篇文章都将为你提供宝贵的洞见和实用的技巧。
|
2月前
|
监控 安全 测试技术
在实施自动化和持续集成的过程中,如何确保代码的安全性和合规性
在自动化和持续集成中,确保代码安全与合规至关重要。措施包括集成自动化安全工具、执行自动化合规检查、进行代码质量与安全检测、评估开源代码安全、实施基础设施即代码的安全标准、采用多层防御策略、加强安全教育与文化建设、使用合规性检测工具及许可证合规分析等,共同提升代码安全性与合规水平。
|
2月前
|
机器学习/深度学习 人工智能 运维
自动化运维之路:从脚本到工具的演进
在IT运维领域,效率和准确性是衡量工作成效的关键指标。随着技术的发展,自动化运维逐渐成为提升这两个指标的重要手段。本文将带领读者了解自动化运维的演变历程,从最初的简单脚本编写到现今复杂的自动化工具应用,展示如何通过技术提升运维效率。文章不仅介绍理论和实践案例,还提供了代码示例,帮助读者理解自动化运维的实际应用场景。
|
2月前
|
JavaScript 前端开发 开发者
探索 DrissionPage: 强大的Python网页自动化工具
DrissionPage 是一个基于 Python 的网页自动化工具,结合了浏览器自动化的便利性和 requests 库的高效率。它提供三种页面对象:ChromiumPage、WebPage 和 SessionPage,分别适用于不同的使用场景,帮助开发者高效完成网页自动化任务。
201 4