some working learning总结学习
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总结学习的更多相关文章
- (转)Predictive learning vs. representation learning 预测学习 与 表示学习
Predictive learning vs. representation learning 预测学习 与 表示学习 When you take a machine learning class, ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】
转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)
##机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)---#####注:机器学习资料[篇目一](https://github.co ...
- deep learning深度学习之学习笔记基于吴恩达coursera课程
feature study within neural network 在regression问题中,根据房子的size, #bedrooms原始特征可能演算出family size(可住家庭大小), ...
- Andrew Ng Machine Learning Coursera学习笔记
课程记录笔记如下: 1.目前ML的应用 包括:数据挖掘database mining.邮件过滤email anti-spam.机器人autonomous robotics.计算生物学computati ...
- Active Learning主动学习
Active Learning主动学习 我们使用一些传统的监督学习方法做分类的时候,往往是训练样本规模越大,分类的效果就越好.但是在现实生活的很多场景中,标记样本的获取是比较困难的,这需要领域内的专家 ...
- <Machine Learning - 李宏毅> 学习笔记
<Machine Learning - 李宏毅> 学习笔记 b站视频地址:李宏毅2019国语 第一章 机器学习介绍 Hand crafted rules Machine learning ...
- Active Learning 主动学习
Active Learning 主动学习 2015年09月30日 14:49:29 qrlhl 阅读数 21374 文章标签: 算法机器学习 更多 分类专栏: 机器学习 版权声明:本文为博主原创文 ...
- Dictionary Learning(字典学习、稀疏表示以及其他)
第一部分 字典学习以及稀疏表示的概要 字典学习(Dictionary Learning)和稀疏表示(Sparse Representation)在学术界的正式称谓应该是稀疏字典学习(Sparse Di ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料
<Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...
随机推荐
- 请求headers处理
有时在请求一个网页内容时,发现无论通过GET或者是POST以及其他请求方式,都会出现403错误.这种现象多数是由于服务器拒绝了您的访问,那是因为这些网页为了防止恶意采集信息,所使用的反爬虫设置.此时可 ...
- eclipse中如何在当前工程中查找一个字符串
ctrl + h 后弹出 tab选项,你选择 file search 然后在下面输入要查找的字符串workset 那里选择你要查找的项目默认是全部项目进行查找
- Springboot静态文件不更新的解决办法,以及Springboot实现热部署
Springboot静态文件不更新的解决办法,以及Springboot实现热部署 原文链接:https://www.cnblogs.com/blog5277/p/9271882.html 原文作者:博 ...
- svg(二)---半瓶子晃荡
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- P1325 雷达安装
传送门 思路: 采取贪心的思想. 把每个岛屿看作圆心,以雷达的范围 d 为半径,求出与 x 轴的左右两个交点,两交点所夹的区间就需要放置一个雷达,这样就把这道题转换为了区间取点问题.在枚举岛屿时,记录 ...
- Cordova结合Vue学习Camera
简单聊两句 学习Vue+Cordova打包编译App,首先你要安装Cordova与vue,在这里本人就不说明了,自行看文档与搜索相关资料. Cordova中文官网地址 Vue中文官网地址 第一步:首先 ...
- kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries. 最无语的配置
注意: 本文不谈废话,低级问题请自行检查. 我使用Java版本的Kafka Producer生产数据,但是抛出了这个异常.百思不得其解,明明防火墙配置,ZooKeeper,Kafka配置都是没问题的啊 ...
- centos7.4安装nginx
参考地址: https://blog.csdn.net/weixin_41048363/article/details/80236663 我这里没有使用阿帕奇之类的服务器,只搭建了node环境.所以并 ...
- [hdu P3085] Nightmare Ⅱ
[hdu P3085] Nightmare Ⅱ Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- 高级FTP服务器开发
要求: 1. 用户加密认证 2. 多用户同时登陆 3. 每个用户有自己的家目录且只能访问自己的家目录 4. 对用户进行磁盘配额.不同用户配额可不同 5. 用户可以登陆server后,可切换目录 6. ...