微信官方发布小程序自动化测试框架Minium。该框架支持使用Python或者Javascript编写自动化测试程序,可以运行在IDE、Android以及iOS三端。
由于是微信官方发布,该框架注定秒杀现有一切第三方自动化测试框架。该框架支持多种内核运行(X5\原生Webview)以模拟小程序的实际使用场景;可以直接触发小程序上的事件,甚至可以直接调用部分wx.开头的接口;支持直接向AppService注入代码。
查看文档仍需配置nodejs环境,这一点对Python程序员来说还不够友好。实际上使用该框架并不需要nodejs环境,依旧是Python程序员们熟悉的pip install ... 但是不知为何该项目文档要求运行nodejs环境才能查看。为此,我们把项目文档上传到了github,以便Python程序员可以不必安装nodejs,直接查看项目文档。
python实现简单的聊天小程序
服务端实现
import json
import threading
from socket import *
from time import ctime
class PyChattingServer:
__socket = socket(AF_INET, SOCK_STREAM, 0)
__address = ('', 12231)
__buf = 1024
def __init__(self):
self.__socket.bind(self.__address)
self.__socket.listen(20)
self.__msg_handler = ChattingHandler()
def start_session(self):
print('等待客户连接...\r\n')
try:
while True:
cs, caddr = self.__socket.accept()
# 利用handler来管理线程,实现线程之间的socket的相互通信
self.__msg_handler.start_thread(cs, caddr)
except socket.error:
pass
class ChattingThread(threading.Thread):
__buf = 1024
def __init__(self, cs, caddr, msg_handler):
super(ChattingThread, self).__init__()
self.__cs = cs
self.__caddr = caddr
self.__msg_handler = msg_handler
# 使用多线程管理会话
def run(self):
try:
print('...连接来自于:', self.__caddr)
data = '欢迎你到来PY_CHATTING!请输入你的很cooooool的昵称(不能带有空格哟`)\r\n'
self.__cs.sendall(bytes(data, 'utf-8'))
while True:
data = self.__cs.recv(self.__buf).decode('utf-8')
if not data:
break
self.__msg_handler.handle_msg(data, self.__cs)
print(data)
except socket.error as e:
print(e.args)
pass
finally:
self.__msg_handler.close_conn(self.__cs)
self.__cs.close()
class ChattingHandler:
__help_str = "[ SYSTEM ]\r\n" \
"输入/ls,即可获得所有登陆用户信息\r\n" \
"输入/h,即可获得帮助\r\n" \
"输入@用户名 (注意用户名后面的空格)+消息,即可发动单聊\r\n" \
"输入/i,即可屏蔽群聊信息\r\n" \
"再次输入/i,即可取消屏蔽\r\n" \
"所有首字符为/的信息都不会发送出去"
__buf = 1024