1. Python通过pypyodbc访问Access数据库

  https://blog.csdn.net/jisuanjiguoba/article/details/73163721

2. java大数据学习路线图
  https://blog.csdn.net/weixin_44386638/article/details/86664006

3. 使用Python对Access读写操作
  https://www.cnblogs.com/mayi0312/p/6646957.html
4. python 字符串组成MySql 命令时,字符串含有单引号或者双引号导致出错解决办法
  https://www.cnblogs.com/Presley-lpc/p/9152020.html

5. 纯前端利用 js-xlsx 实现 Excel 文件导入导出功能示例
  https://blog.csdn.net/weixin_36185028/article/details/78685844

6.实现三个功能

  1. 读取excel脚本上的测试用例,使用Automation desk执行py脚本,运行程序,将测试结果通过socket的方式(因为pyqt来实时读取测试结果,操控机器,com段通信涉及到进程、线程占用的问题,所以采用了socket)发送到pyqt做的控制器(监控网站测试需求,操作automation执行测试用例并读取返回结果)

from openpyxl import load_workbook
from time import sleep
from audxilapiconveniencelib import Write,Read
from openpyxl.comments import Comment
from openpyxl.styles import colors, Font
import socket
import json
import time #记录测试用例所耗时间
start_time = time.time() #测试进度推送
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
address = ("localhost", ) #测试用例导入并筛选
TC=load_workbook ("C:\\03_TestCase\\BenShaw\\ATC\\VCU_TC_LvPwrOff.xlsx")
TCsheet=TC.active
TCrows=[]
Cases=[]
for row in TCsheet.iter_rows():
TCrows.append(row)
#for i in range(,):
for i in range(,):
Cases.append(TCrows[i]) #测试执行
item= sum_num =
for Case in Cases: Result=[]
#PreCondition
init_list = []
for i in range(,):
init_list.append(Case[i].value) check_pre_list = []
tag =
count =
while count<: #分4种条件,先判断是否Powcomplete,chargfed,stready,状态,
# 、全0;
# 、,,;
# 、,,; 高压上电状态
# 、,,; 充电状态
if init_list[] == and init_list[] == and init_list[] == :
print("用例%s进入初始条件一的判断"%sum_num)
Write(_AD_.MAPort, _AD_.TestVar.IN_ChrgOffButton_Value, Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.IN_PowON_Value, Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.IN_12Voltage_Value, Case[].value)
tag =
count =
elif init_list[] == and init_list[] == and init_list[] == :
print("用例%s进入初始条件二的判断"%sum_num)
Write(_AD_.MAPort, _AD_.TestVar.IN_ChrgOffButton_Value, Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.IN_PowON_Value, Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.IN_12Voltage_Value, Case[].value)
time.sleep()
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyON_Value, Case[].value)
time.sleep()
count2 =
while count2<:
if Read(_AD_.MAPort, _AD_.TestVar.RX_BMS_Tx_stPowComplete) == init_list[]:
print("用例%s初始条件二再循环判断正确"%sum_num)
tag =
break
else:
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyON_Value, )
time.sleep()
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyON_Value, )
time.sleep()
count2 +=
count =
elif init_list[] == and init_list[] == and init_list[] == :
print("用例%s进入初始条件三的判断"%sum_num)
Write(_AD_.MAPort, _AD_.TestVar.IN_ChrgOffButton_Value, Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.IN_PowON_Value, Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.IN_12Voltage_Value, Case[].value)
time.sleep()
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyON_Value, Case[].value)
time.sleep()
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyStart_Value, Case[].value)
time.sleep()
count3 =
while count3<:
if Read(_AD_.MAPort, _AD_.TestVar.RX_BMS_Tx_stPowComplete) == init_list[]: count4 =
while count4 < :
if Read(_AD_.MAPort, _AD_.TestVar.RX_VCU_Tx_stReady) == :
print("用例%s初始条件三再循环判断正确"%sum_num)
#退出count3的循环
count3 =
tag =
break
else:
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyStart_Value, )
time.sleep()
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyStart_Value, )
count4 +=
count3 +=
else:
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyON_Value, )
time.sleep()
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyON_Value, )
time.sleep()
count3 +=
count =
elif init_list[] == and init_list[] == and init_list[] == :
print("用例%s进入初始条件四的判断"%sum_num)
Write(_AD_.MAPort, _AD_.TestVar.IN_ChrgOffButton_Value, Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.IN_PowON_Value, Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.IN_12Voltage_Value, Case[].value)
time.sleep()
Write(_AD_.MAPort, _AD_.TestVar.RC2Value_Value, Case[].value)
time.sleep() count5 =
while count5<:
if Read(_AD_.MAPort, _AD_.TestVar.RX_BMS_Tx_stPowComplete) == init_list[] and Read(_AD_.MAPort, _AD_.TestVar.RX_VCU_Tx_stChrgFed) == init_list[]:
print("用例%s初始条件四再循环判断正确"%sum_num)
#退出count3的循环
tag =
break
else:
Write(_AD_.MAPort, _AD_.TestVar.RC2Value_Value, )
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyON_Value, )
time.sleep()
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyON_Value, ) Write(_AD_.MAPort, _AD_.TestVar.RC2Value_Value, Case[].value)
time.sleep()
count5 +=
count =
print("退出条件4循环")
else:
print("用例%s属于目前未加初始条件,待扩展判断区"%sum_num)
count += check_pre_list.append(Read(_AD_.MAPort, _AD_.TestVar.RX_BMS_Tx_stPowComplete))
check_pre_list.append(Read(_AD_.MAPort, _AD_.TestVar.RX_VCU_Tx_stChrgFed))
check_pre_list.append(Read(_AD_.MAPort, _AD_.TestVar.RX_VCU_Tx_stReady))
#进行写入操作前的判断,节省资源
# if tag:
#Action
print("用例%s进入测试步骤正确"%sum_num)
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyStart_Value, Case[].value)
#写入speed
Write(_AD_.MAPort, _AD_.TestVar.Active_Value, )
Write(_AD_.MAPort, _AD_.TestVar.Control_Value,Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyON_Value, Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.RC2Value_Value, Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.IN_ChrgOffButton_Value, Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.IN_PowON_Value, Case[].value)
time.sleep(Case[].value)
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyON_Value, Case[].value)
time.sleep(Case[].value) #Result
Result.append(Read(_AD_.MAPort, _AD_.TestVar.RX_VCU_Tx_stDCDCEn))
Result.append(Read(_AD_.MAPort, _AD_.TestVar.RX_VCU_Tx_powMaxPerm))
Result.append(Read(_AD_.MAPort, _AD_.TestVar.RX_VCU_Tx_stChrgFed))
Result.append(Read(_AD_.MAPort, _AD_.TestVar.O_S_BMSPwrOn_0_1__Out))
Result.append(Read(_AD_.MAPort, _AD_.TestVar.O_S_MCUPwrOn_0_1__Out))
Result.append(Read(_AD_.MAPort, _AD_.TestVar.O_S_DCPwrOn_0_1__Out))
Result.append(Read(_AD_.MAPort, _AD_.TestVar.O_S_VCUst_0_1__Out))
Result.append(Read(_AD_.MAPort, _AD_.TestVar.O_S_OBCPwrOn_0_1__Out))
time.sleep()
Result.append(Read(_AD_.MAPort, _AD_.TestVar.O_S_ACPDURly_ON_0_1__Out)) #Result Judge
item+=
j=
for i in range(,):
if Result[i-]==Case[i].value:
pass
else:
j=j+
Case[i].comment=Comment('Actual Result:'+str(Result[i-]), 'Fail')
Case[i].font=Font(color=colors.RED)
if j==:
Case[].value='Pass'
data=json.dumps([str(item),'Pass'])
server_socket.sendto(data,address)
else:
Case[].value='Fail'
data=json.dumps([str(item),'Fail'])
server_socket.sendto(data,address)
sleep() else:
Case[].value='进入初始条件Fail'
print("初始条件进入Fail,case %s"%sum_num)
data=json.dumps([str(item),'Fail']) for j in range(,):
if check_pre_list[j-] ==Case[j].value:
pass
else:
Case[j].comment=Comment('Actual Result:'+str(check_pre_list[j-]), 'Fail')
Case[j].font=Font(color=colors.RED) #TestCleanUp
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyON_Value, )
Write(_AD_.MAPort, _AD_.TestVar.IN_PowON_Value, )
Write(_AD_.MAPort, _AD_.TestVar.IN_12Voltage_Value, )
Write(_AD_.MAPort, _AD_.TestVar.RCValue_Value, )
Write(_AD_.MAPort, _AD_.TestVar.RC2Value_Value, )
Write(_AD_.MAPort, _AD_.TestVar.IN_KeyStart_Value, )
time.sleep()
sum_num += #测试报告保存
ExcuteTime=time.strftime("%Y_%m_%d_%H_%M_%S", time.localtime())
TC.save("C:\\03_TestCase\\BenShaw\\ATC\\VCU_TC_LvPwrOff_"+ExcuteTime+".xlsx") stop_time = time.time()
ctime = stop_time-start_time if ctime<:
min =
sec = int(ctime % )
else:
min = int(ctime / )
sec = int(ctime % ) print("此功能用例耗费时间 %s分钟%s秒"%(min,sec))

some working learning总结学习的更多相关文章

  1. (转)Predictive learning vs. representation learning 预测学习 与 表示学习

    Predictive learning vs. representation learning  预测学习 与 表示学习 When you take a machine learning class, ...

  2. 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】

    转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...

  3. 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)

    ##机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)---#####注:机器学习资料[篇目一](https://github.co ...

  4. deep learning深度学习之学习笔记基于吴恩达coursera课程

    feature study within neural network 在regression问题中,根据房子的size, #bedrooms原始特征可能演算出family size(可住家庭大小), ...

  5. Andrew Ng Machine Learning Coursera学习笔记

    课程记录笔记如下: 1.目前ML的应用 包括:数据挖掘database mining.邮件过滤email anti-spam.机器人autonomous robotics.计算生物学computati ...

  6. Active Learning主动学习

    Active Learning主动学习 我们使用一些传统的监督学习方法做分类的时候,往往是训练样本规模越大,分类的效果就越好.但是在现实生活的很多场景中,标记样本的获取是比较困难的,这需要领域内的专家 ...

  7. <Machine Learning - 李宏毅> 学习笔记

    <Machine Learning - 李宏毅> 学习笔记 b站视频地址:李宏毅2019国语 第一章 机器学习介绍 Hand crafted rules Machine learning ...

  8. Active Learning 主动学习

    Active Learning 主动学习 2015年09月30日 14:49:29 qrlhl 阅读数 21374 文章标签: 算法机器学习 更多 分类专栏: 机器学习   版权声明:本文为博主原创文 ...

  9. Dictionary Learning(字典学习、稀疏表示以及其他)

    第一部分 字典学习以及稀疏表示的概要 字典学习(Dictionary Learning)和稀疏表示(Sparse Representation)在学术界的正式称谓应该是稀疏字典学习(Sparse Di ...

  10. 机器学习(Machine Learning)&深度学习(Deep Learning)资料

    <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...

随机推荐

  1. 基于token的身份验证JWT

    传统身份验证的方法 HTTP 是一种没有状态的协议,也就是它并不知道是谁是访问应用.这里我们把用户看成是客户端,客户端使用用户名还有密码通过了身份验证,不过下回这个客户端再发送请求时候,还得再验证一下 ...

  2. C# 虹软离线SDK引擎 人脸识别

    一,背景 整体来说虹软的人脸识别SDK还是不错的.我们测试过Face++的,百度的,腾讯的,都是在线联网的,需要把上传数据到它们服务器,不利商业用途:虹软SDK支持离线. 二,下载虹软SDK 1.注册 ...

  3. vue的技巧代码

    转载:https://segmentfault.com/a/1190000014085613 第一招:化繁为简的Watchers 场景还原: created(){ this.fetchPostList ...

  4. [easyUI] lazyload 懒加载

    1.使用<img>标签将图片都写在网页上. <div style="height:450px;"><h1>请往下看,有图片的吆!</h1& ...

  5. 盘符格式转换成NTFS格式

    点击屏幕左下角“开始”,找到运行,在其中输入:cmd,确定,打开“命令提示符”; 在命令提示符下输入: convert X:/FS:NTFS(其中X是你要转换的盘符盘符). 执行后,重新启动电脑 这样 ...

  6. Lua 语言变量

    Lua 变量 变量在使用前,必须在代码中进行声明,即创建该变量.编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值. Lua 变量有三种类型:全局变量.局部变量.表中的域. ...

  7. hdu多校第3场C. Dynamic Graph Matching

    Problem C. Dynamic Graph Matching Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Tot ...

  8. ES6--闭包数组i的值与var的作用域理解

    var a = [];for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); };}a[6](); // 10 变 ...

  9. LeetCode Best to buy and sell stock

    Best Time to Buy and Sell Stock 题目大意;给定数组a[..],求解max a[j]-a[i]    j>i 解决思路:将数组a的相邻值相减(右边减左边)变换成数组 ...

  10. tensorFlow(六)应用-基于CNN破解验证码

    TensorFlow基础见前博客 简介 传统的验证码识别算法一般需要把验证码分割为单个字符,然后逐个识别.本教程将验证码识别问题转化为分类的问题,实现对验证码进行整体识别. 步骤简介 本教程一共分为四 ...