SciTech-Automation-UI交互自动化: Microsoft 的 接口自动化测试 : 微信的: LLM(AI/Transformer)的自动应答系统
用LLM +Python 实现微信消息的自动应答
先上一个"Alpha"版本的,以csv关键词匹配方式描述应用的,主题逻辑.
!/usr/bin/python3
# coding: utf-8
import pandas as pd
import numpy as np
from uiautomation import windowControl,Menucontrol
from functools import partial, wraps
# read replies data
df = pd.read_csv("应答数据.csv",encoding="gb18030")
# matching answers by keywords from the last one message.
def matcher(last_msg, x):
ret = None
if x["关键词"] in last_msg:
ret = x["应答内容"]
return ret
# bind the "title" of WeChat's main window
wx = windowControl(
Name="微信",
# searchDepth=1
)
print("MainWindow: %r" % (wx,))
# bind it's session ctrl.
wx.SwitchToThiswindow()
hw = wx.ListControl(Name="会话")
print("SessionControl: %r" % (hw,))
# bind it's "Messages" ctrl.
mc=wx.ListControl(Name="消息")
while True:
# first 4 items as the "searchDepths"
we = hw.TextControl(searchDepths=4)
print("Seek unread msg.", we)
while not we.Exists(0):
pass
# if existing unread msg.
if not bool(we.Name):
continue
# click and retrive the unread msg.
we.Click(simulateMove=False)
msgs=mc.GetChildren()
last_msg = msgs[-1] # LAST ONE ONLY
print("Last One Msg.:%s" % last_msg)
# choose replies msg by keywords
filter=partial(matcher, last_msg) # #也可用"LLM/AI/Transformer"模型应答
replies = df.apply(filter, axis=1)
replies.dropna(axis=0,how="any",inplace=1)
ar = np.array(replies).tolist()
if len(ar) == 0: # keywords no replies
wx.SendKeys("没理解", waitTime=0)
wx.SendKeys('{Enter}', waitTime=0)
wx.TextControl(SubName=last_msg[:-5]).RightClick()
continue
rms=ar[0].replace('{br}','{Shift}{Enter}')
wx.SendKeys(rms, waitTime=0)
wX.SendKeys('{Enter}', waitTime=0)
UI自动化 - 微软UI Automation
--- Original: Niuery Diary
自动化测试平台的 稳定性 非常重要。
无论是接口自动化测试,还是UI自动化测试,
目的之一是为提高产品的稳定性,保证用户体验。
接口自动化测试, 常见的有 Postman, SoapUI, JMeter 等, 这一类网上的资料太多。
本篇内容主题是UI自动化测试,我搜集的常用的UI自动化测试平台:
*「Selenium」: Web应用程序的自动化测试框架,开源免费,使用非常广泛;
既支持多种语言的脚本驱动测试,也支持记录与回放的方式测试。
- 「Appium」: APP(移动应用程序)的自动化测试框架,开源免费,使用非常广泛;
支持多种语言的脚本驱动测试。 - 「Katalon Studio」: UI的自动化测试工具,适用于Web, APP和API测试, 免费。
基于Selenium和Appium,并提供GUI(图形化界面)和集成的测试功能。 - 「TestComplete」: 商业UI的自动化测试工具,适用于PC, Web, APP和API, 付费。
功能强大, 提供多种脚本语言和图形化界面,以及灵活的对象识别和回放功能。 - 「Ranorex」: 商业UI的自动化测试工具,适用于PC, Web, APP和API, 付费。
提供易于使用的录制和回放功能,支持多种编程语言。
总之,对PC应用的UI自动化测试,上述要么免费但仅支持Web应用, 要么就是商业化的。
所以有必要提到主题 --- UIAutomation。
UIAutomation
来看一看微软官方对此的介绍 UIAutomation:
Microsoft UI Automation是适用于Microsoft Windows的Accessibility Framework。
它满足了技术产品和自动化测试框架的需求,通过提供对用户界面(UI)信息的编程访问来实现。
此外,UI Automation还使控件和应用程序开发人员能够使其产品有Assistive Technology。
其它的,Google 或 Microsoft Bing就可以搜索到答案。

SciTech-Automation-UI交互自动化: Microsoft 的 接口自动化测试 : 微信的: LLM(AI/Transformer)的自动应答系统的更多相关文章
- python3+requests:接口自动化测试(二)
转载请注明出处:https://www.cnblogs.com/shapeL/p/9188495.html 前言:上篇文章python3+requests+unittest:接口自动化测试(一):ht ...
- 利用Azure Automation实现云端自动化运维(1)
Azure Automation是Azure上的一个自动化工作流引擎,基于Powershell,来帮助用户简化,集成和自动化Azure上的运维工作,例如: 实现定时开关虚拟机,节约成本 实现定时创建删 ...
- 如何记录selenium自动化测试过程中接口的调用信息
上一篇博客,我写了python自动化框架的一些知识和粗浅的看法,在上一篇中我也给自己提出一个需求:如果记录在测试过程中接口的调用情况?提出这个需求,我觉得是有意义的.你在测试过程中肯定会遇到一些莫名其 ...
- java接口自动化(一) - 接口自动化测试整体认知 - 开山篇(超详解)
简介 了解什么是接口和为什么要做接口测试.并且知道接口自动化测试应该学习哪些技术以及接口自动化测试的落地过程.其实这些基本上在python接口自动化的文章中已经详细的介绍过了,不清楚的可以过去看看.了 ...
- react UI交互 简单实例
<body><!-- React 真实 DOM 将会插入到这里 --><div id="example"></div> <!- ...
- iOS开发笔记7:Text、UI交互细节、两个动画效果等
Text主要总结UILabel.UITextField.UITextView.UIMenuController以及UIWebView/WKWebView相关的一些问题. UI细节主要总结界面交互开发中 ...
- 类似UC天气下拉和微信下拉眼睛头部弹入淡出UI交互效果(开源项目)。
Android-PullLayout是github上的一个第三方开源项目,该项目主页是:https://github.com/BlueMor/Android-PullLayout 原作者项目意图实现 ...
- firefox 扩展开发笔记(三):高级ui交互编程
firefox 扩展开发笔记(三):高级ui交互编程 前言 前两篇链接 1:firefox 扩展开发笔记(一):jpm 使用实践以及调试 2:firefox 扩展开发笔记(二):进阶开发之移动设备模拟 ...
- 使用GraphHttpClient调用Microsoft Graph接口 - PATCH
博客地址:http://blog.csdn.net/FoxDave 通过前两讲的阐述我们应该大致了解了使用GraphHttpClient调用Microsoft Graph接口的模式,并介绍了使用get ...
- 【附案例】UI交互设计不会做?设计大神带你开启动效灵感之路
随着网络技术的创新发展,如今UI交互设计应用越来越广泛,显然已经成为设计的主流及流行的必然趋势.UI界面交互设计中的动效包括移动,滑块,悬停效果,GIF动画等.UI界面交互设计为何越来越受到青睐?它有 ...
随机推荐
- Windows路径或者Linux路径映射成web路径进行访问代码
package com.soft.mpms.zframe.config; import java.io.File; import org.springframework.context.annotat ...
- Asp.net core 少走弯路系列教程(一)了解 W3C
前言 新人学习成本很高,网络上太多的名词和框架,全部学习会浪费大量的时间和精力. 新手缺乏学习内容的辨别能力,本系列文章为新手过滤掉不适合的学习内容(比如多线程等等),让新手少走弯路直通罗马. 作者认 ...
- python-docx styles(样式)的用法
doc=Document()#创建一个空白文档 p=doc.add_paragraph()#给文档增加一个段落 p.paragraph_format.space_before=Pt(0)#设置段落 段 ...
- 在Podman中配置Dify Sandbox服务与外部PostgreSQL服务的网络连接
在Podman中配置Dify Sandbox服务与外部PostgreSQL服务的网络连接 引言 在容器化环境中,确保不同服务之间的可靠通信是至关重要的.本文将指导你如何使用Podman来配置Dify ...
- jsp 输入out.println()报错
jsp 输入out.println()报错,输入out.后没有代码提示,println()报红. 可以看看有没有导包jsp-api. <dependency> <groupId> ...
- 重载(Overloading)与重写(Override)的区别?
重载(Overloading)与重写(Override)的区别? No. 区别 重载 重写 1 英文单词 Overloading Override 2 发生范围 发生在一个类里面 发生在继承关系中 3 ...
- 【MOOC】华中科技大学操作系统慕课答案-期末测试题
文章目录 单选题 填空题 判断题 主观题 单选题 1 当操作系统处理缺页中断的时候,CPU处在 . A. 用户态 √B. 核态 C. 不确定的状态 D. 空闲状态 2 操作系统的用户界面可以分为两 ...
- 代码视角-神经网络-Python 实现(上)
说明: 就是巩固一下认识而已, 也是找了篇网上大佬的文章, 看了下写得还行, 抄一抄, 权当编程练习了, 目的成为了, 从代码的角度去认识这些, 莫名其妙的, 让人生畏的, 但其实简单的, 生物学名词 ...
- DataFrame.iterrows的一种用法
import pandas as pd import numpy as np help(pd.DataFrame.iterrows) Help on function iterrows in modu ...
- 第一次blog作业
1.前言 刚接触面向对象程序设计和开始学习Java编程语言的时候,确实觉得所有的一切都很困难,所有的一切都很陌生.面对全新的概念和编程方式,感觉自己像是进入了一个完全陌生的领域,需要从头开始探索.那 ...