【优雅代码】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

相关文章
|
3月前
|
运维 Prometheus 监控
3 年部署经验总结:用自动化工具轻松管理 300+ 服务器开源软件
三年前接手公司IT部门时,我满怀信心,却发现部署效率低下。尽管使用了GitLab、Jenkins、Zabbix等100+开源工具,部署仍耗时费力。文档厚重如百科,却难解实际困境。一次凌晨三点的加班让我下定决心改变现状。偶然看到一篇国外博客,介绍了自动化部署的高效方式,我深受启发。
179 0
|
2月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
312 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
1月前
|
人工智能 搜索推荐 UED
一个牛逼的国产AI自动化工具,开源了 !
AiPy是国产开源AI工具,结合大语言模型与Python,支持本地部署。用户只需用自然语言描述需求,即可自动生成并执行代码,轻松实现数据分析、清洗、可视化等任务,零基础也能玩转编程,被誉为程序员的智能助手。
|
2月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
134 6
|
3月前
|
人工智能 数据可视化 数据挖掘
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
本文深入分析了传统手动日报在数据孤岛、格式混乱和时效性差三大痛点,并探讨了自动化日报带来的效率提升、决策优化等四大核心价值。通过对板栗看板、SmartBrief、n8n 等六款主流工具的功能、适用场景及实战效果进行测评,为企业提供科学的选型建议与实施路径。
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
|
1月前
|
人工智能 缓存 自然语言处理
86_自动化提示:AutoPrompt工具
在当今人工智能领域,提示工程(Prompt Engineering)已成为释放大语言模型(LLM)潜能的关键技术。随着LLM规模和能力的不断增长,如何设计高效、精确的提示词成为研究和应用的焦点。然而,传统的手工提示工程面临着巨大挑战
|
3月前
|
人工智能 供应链 数据可视化
工作流梳理工具实战教程:手把手教你绘制第一张自动化流程图
本文剖析了团队因流程混乱导致重复劳动和效率低下的问题,提出通过工作流梳理提升协作效率的解决方案。总结了流程梳理的六大核心需求,并深度测评了6款主流工具,国内有板栗看板那,国外有kiss flow结合团队规模与需求提供选型建议,助力企业高效落地流程优化。
|
2月前
|
安全 搜索推荐 机器人
风险规则引擎-RPA 作为自动化依赖业务决策流程的强大工具
机器人流程自动化(RPA)是一种通过软件“机器人”自动执行重复性任务的技术,能大幅提升工作效率。它适用于财务、电商等领域的标准化流程,如账单处理和退货管理。然而,RPA在复杂决策场景中存在局限,需结合决策模型(DMN)和业务规则管理系统(BRMS)实现流程与决策的协同自动化,从而增强灵活性与业务价值。
|
4月前
|
数据采集 人工智能 API
推荐一款Python开源的AI自动化工具:Browser Use
Browser Use 是一款基于 Python 的开源 AI 自动化工具,融合大型语言模型与浏览器自动化技术,支持网页导航、数据抓取、智能决策等操作,适用于测试、爬虫、信息提取等多种场景。
739 5
推荐一款Python开源的AI自动化工具:Browser Use