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 ...
随机推荐
- 09.vue中样式-style
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 『Python』库安装
1.安装指定版本的tensorflow 虽然官网有4种安装方式,并且推荐用anaconda的方式,但是有时候我们需要指定版本的tensorflow,而pip可以做到. 比如我装的是anaconda3. ...
- PI接口开发之调java WS接口
java提供的WSDL:http://XXX.XXX.XXX.XX/XXXXXXXcrm/ws/financialStatementsService?wsdl 登陆PI,下载Enterprise Se ...
- Oracle数据库联机重定义讲解及错误处理
1.1. 关键字:联机重定义/SYNC_INTERIM_TABLE/GATHER_TABLE_STATS 1.2. 需求:数据表的清理机制需要优化 离线消息表采用delete的方式定期对过期的数据进行 ...
- MVC模式和MVP模式的区别
MVC模式: 1. MVC的所有通信都是单向的. 2. view传送指令到controller(用户也可以直接将指令传到controller). 3. controller完成业务逻辑后要求model ...
- 2015-10-12 jQuery4
十. 直接获取.编辑内容 1.获取内容 alert($("#d1").text()); //获取文本内容 alert($("#d1").html()); ...
- python3-连接MySQL(mysql.connector与MySQLdb区别)
import mysql.connector cnx = mysql.connector.connect(user='scott', password='tiger',host='127.0.0.1' ...
- vue项目目录结构
VUE项目目录结构 如上图所示,我们的目录结构就是这样的了. 目录/文件 说明 build 这个是我们最终发布的时候会把代码发布在这里,在开发阶段,我们基本不用管. config 配置目录,默认配置没 ...
- express源码分析
参考:http://www.cnblogs.com/ginobilee/p/6906204.html https://www.cnblogs.com/zhusheng2008/p/5264096.ht ...
- 一、JAVA变量类型:②局部变量
局部变量声明在方法.构造方法或者语句块中: public class Test{ public void pupAge(){ int age = 0; //定义age为方法pupAge中的局部变量,并 ...