import os
import sys
from PyQt5.QtCore import QObject, pyqtSignal
from PyQt5.QtGui import QTextCursor
from jifei3 import Ui_Form
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import *
import requests
import pandas as pd
import csv
class Signal(QObject):
text_update = pyqtSignal(str)
def write(self, text):
self.text_update.emit(str(text))
QApplication.processEvents()
class MyClass(QWidget, Ui_Form):
def __init__(self):
super().__init__()
self.InitUi()
def InitUi(self):
self.setupUi(self)
self.setWindowTitle("路内计费测试工具")
self.show()
self.txt = QtWidgets.QTextEdit()
self.pushButton.clicked.connect(self.path)
self.pushButton_2.clicked.connect(self.jifei)
sys.stdout = Signal()
sys.stdout.text_update.connect(self.updatetext)
def updatetext(self, text):
"""
更新textBrowser
"""
cursor = self.textBrowser.textCursor()
cursor.movePosition(QTextCursor.End)
self.textBrowser.append(text)
self.textBrowser.setTextCursor(cursor)
self.textBrowser.ensureCursorVisible()
def environment(self):
if self.comboBox.currentText()=="测试环境":
url="https://apitest.xtingcloud.com/zk_xm_test/charge/test?orderId="
return url
else:
url = "https://api.xtingcloud.com/zk_zk/charge/test?orderId="
return url
def path(self):
self.dir_name = QFileDialog.getOpenFileName(None, '选择文件', os.getcwd())
dir_path=self.dir_name
dir_path2=dir_path[0]
self.lineEdit_4.setText(dir_path2)
def get_exceldata(self):
try:
if self.comboBox_2.currentText()=="大沥" and self.comboBox_3.currentText()=="一类区域" and self.comboBox_4.currentText()=="小型车" and self.comboBox_5.currentText() == "全部":
raw_data = pd.read_excel(self.lineEdit_4.text(), header=0,sheet_name="大沥一类区域小型车计费规则(燃油&新能源车)")
data = raw_data.values
return data
elif self.comboBox_2.currentText()=="永安" and self.comboBox_3.currentText()=="繁华路段" and self.comboBox_4.currentText()=="全部" and self.comboBox_5.currentText() == "全部":
raw_data = pd.read_excel(self.lineEdit_4.text(), header=0,sheet_name="永安繁华路段小中大型车计费规则(燃油&新能源车)")
data = raw_data.values
return data
elif self.comboBox_2.currentText()=="全部" and self.comboBox_3.currentText()=="全部" and self.comboBox_4.currentText()=="全部" and self.comboBox_5.currentText() == "全部":
raw_data = pd.read_excel(self.lineEdit_4.text(), header=0,
sheet_name="大沥一类区域小型车计费规则(燃油&新能源车)")
data1 = raw_data.values
list1 = data1.tolist()
self.output_dali=len(list1)
raw_data2 = pd.read_excel(self.lineEdit_4.text(), header=0,
sheet_name="永安繁华路段小中大型车计费规则(燃油&新能源车)")
data2 = raw_data2.values
list2 = data2.tolist()
self.output_yonan=len(list2)
list3=list1+list2
self.output_all = len(list3)
self.output_all=self.output_all+1
return list3
except Exception as e:
print(8888888)
def postdata(self,starttime,endtime) -> object:
try:
url1=self.environment()
self.url2_dali1 = url1 + f"671035385089884170&startTime={starttime}&endTime={endtime}"
self.url2_yonan1 = url1 + f"676746866603327498&startTime={starttime}&endTime={endtime}"
if self.comboBox_2.currentText() == "大沥" and self.comboBox_3.currentText() == "一类区域" and self.comboBox_4.currentText() == "小型车" and self.comboBox_5.currentText() == "全部":
payload = {}
headers = {
'Content-Type': 'application/json',
'User-Agent': 'Mozilla / 5.0(Windows NT 6.1;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 98.0.4758.102Safari / 537.36'
}
response = requests.request("GET", self.url2_dali1, headers=headers, data=payload)
rez = response.json()["res"]["data"]["payment"]
return rez
elif self.comboBox_2.currentText() == "永安" and self.comboBox_3.currentText() == "繁华路段" and self.comboBox_4.currentText() == "全部" and self.comboBox_5.currentText() == "全部":
payload = {}
headers = {
'Content-Type': 'application/json',
'User-Agent': 'Mozilla / 5.0(Windows NT 6.1;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 98.0.4758.102Safari / 537.36'
}
response = requests.request("GET", self.url2_yonan1, headers=headers, data=payload)
rez = response.json()["res"]["data"]["payment"]
return rez
except Exception as e:
print(444444444)
def postdata2(self, starttime, endtime):
url1 = self.environment()
self.url2_dali1 = url1 + f"671035385089884170&startTime={starttime}&endTime={endtime}"
self.url2_yonan1 = url1 + f"676746866603327498&startTime={starttime}&endTime={endtime}"
if self.wudi <= self.output_dali:
payload = {}
headers = {
'Content-Type': 'application/json',
'User-Agent': 'Mozilla / 5.0(Windows NT 6.1;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 98.0.4758.102Safari / 537.36'
}
response = requests.request("GET", self.url2_dali1, headers=headers, data=payload)
rez = response.json()["res"]["data"]["payment"]
self.wudi =self.wudi+1
return rez
elif self.wudi <= self.output_all:
payload = {}
headers = {
'Content-Type': 'application/json',
'User-Agent': 'Mozilla / 5.0(Windows NT 6.1;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 98.0.4758.102Safari / 537.36'
}
response = requests.request("GET", self.url2_yonan1, headers=headers, data=payload)
rez = response.json()["res"]["data"]["payment"]
self.wudi = self.wudi + 1
return rez
def jifei(self):
if self.lineEdit_4.text()=="":
QMessageBox.about(self, '提示','文件地址好像还没填哦!')
return
if self.comboBox_2.currentText() == "大沥" and self.comboBox_3.currentText() == "一类区域" and self.comboBox_4.currentText() == "小型车" and self.comboBox_5.currentText() == "全部":
print("地区:大沥")
print("路段类型:一类区域")
print("车辆类型:小型车")
print("车辆属性:燃油车&新能源车")
elif self.comboBox_2.currentText() == "永安" and self.comboBox_3.currentText() == "繁华路段" and self.comboBox_4.currentText() == "全部" and self.comboBox_5.currentText() == "全部":
print("地区:永安")
print("路段类型:繁华路段")
print("车辆类型:小型车")
print("车辆属性:燃油车&新能源车")
elif self.comboBox_2.currentText() == "全部" and self.comboBox_3.currentText() == "全部" and self.comboBox_4.currentText() == "全部" and self.comboBox_5.currentText() == "全部":
print("地区:全部")
print("路段类型:全部")
print("车辆类型:全部")
print("车辆属性:全部")
else:
print("还没有这个类型的计费规则哦!")
self.m=0
self.n=0
self.b=0
if os.path.exists("测试明细.csv"):
os.remove("测试明细.csv")
try:
if self.comboBox_2.currentText() == "大沥" and self.comboBox_3.currentText() == "一类区域" and self.comboBox_4.currentText() == "小型车" and self.comboBox_5.currentText() == "全部":
for i in self.get_exceldata():
self.pay = i[7]
starttime = i[5]
endtime = i[6]
sumpay = self.postdata(starttime, endtime)
sumpay = sumpay / 100
print("案例编号:" + f"{i[0]}")
print("入场时间:" + f"{i[5]}")
print("离场时间:" + f"{i[6]}")
print("理论值:" + f"{self.pay}", "实际计算值:" + f"{sumpay}")
if sumpay == self.pay:
print("测试结果:通过!")
self.m=self.m+1
self.testresult="通过"
else:
print("测试结果:失败!")
self.n = self.n + 1
print(self.n)
self.testresult = "失败"
Area = "测试地区"
RoadType = "路段类型"
CaseNo = "案例编号"
EntryTimes = "入场时间"
leaveTimes = "离场时间"
ExcepetValue = "理论值"
ActualValue = "实际计算值"
Testresult = "测试结果"
CarAttribute="车辆属性"
CarType="车辆类型"
fieldnames = [Area, RoadType,CarAttribute,CarType,CaseNo, EntryTimes, leaveTimes, ExcepetValue, ActualValue, Testresult]
mydict = [
{CaseNo: i[0],Area:i[1], RoadType:i[2] ,CarAttribute:i[3],CarType:i[4] ,EntryTimes: i[5], leaveTimes: i[6], ExcepetValue: i[7], ActualValue: sumpay,
Testresult: self.testresult}]
with open('测试明细.csv', 'a+', encoding='UTF8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
if self.b==0:
writer.writeheader()
self.b=self.b+1
writer.writerows(mydict)
elif self.comboBox_2.currentText() == "永安" and self.comboBox_3.currentText() == "繁华路段" and self.comboBox_4.currentText() == "全部" and self.comboBox_5.currentText() == "全部":
for i in self.get_exceldata():
self.pay = i[7]
starttime = i[5]
endtime = i[6]
sumpay = self.postdata(starttime, endtime)
sumpay = sumpay / 100
print("案例编号:" + f"{i[0]}")
print("入场时间:" + f"{i[5]}")
print("离场时间:" + f"{i[6]}")
print("理论值:" + f"{self.pay}", "实际计算值:" + f"{sumpay}")
if sumpay == self.pay:
print("测试结果:通过!")
self.m=self.m+1
self.testresult="通过"
else:
print("测试结果:失败!")
self.n = self.n + 1
print(self.n)
self.testresult = "失败"
Area = "测试地区"
RoadType = "路段类型"
CaseNo = "案例编号"
EntryTimes = "入场时间"
leaveTimes = "离场时间"
ExcepetValue = "理论值"
ActualValue = "实际计算值"
Testresult = "测试结果"
CarAttribute = "车辆属性"
CarType = "车辆类型"
fieldnames = [Area, RoadType, CarAttribute, CarType, CaseNo, EntryTimes, leaveTimes, ExcepetValue,
ActualValue, Testresult]
mydict = [
{CaseNo: i[0], Area: i[1], RoadType: i[2], CarAttribute: i[3], CarType: i[4] ,EntryTimes: i[5],
leaveTimes: i[6], ExcepetValue: i[7], ActualValue: sumpay,
Testresult: self.testresult}]
with open('测试明细.csv', 'a+', encoding='UTF8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
if self.b == 0:
writer.writeheader()
self.b = self.b + 1
writer.writerows(mydict)
elif self.comboBox_2.currentText() == "全部" and self.comboBox_3.currentText() == "全部" and self.comboBox_4.currentText() == "全部" and self.comboBox_5.currentText() == "全部":
self.wudi = 1
for i in self.get_exceldata():
self.pay = i[7]
starttime = i[5]
endtime = i[6]
sumpay = self.postdata2(starttime, endtime)
sumpay = sumpay / 100
print("案例编号:" + f"{i[0]}")
print("入场时间:" + f"{i[5]}")
print("离场时间:" + f"{i[6]}")
print("理论值:" + f"{self.pay}", "实际计算值:" + f"{sumpay}")
if sumpay == self.pay:
print("测试结果:通过!")
self.m=self.m+1
self.testresult="通过"
else:
print("测试结果:失败!")
self.n = self.n + 1
print(self.n)
self.testresult = "失败"
Area = "测试地区"
RoadType = "路段类型"
CaseNo = "案例编号"
EntryTimes = "入场时间"
leaveTimes = "离场时间"
ExcepetValue = "理论值"
ActualValue = "实际计算值"
Testresult = "测试结果"
CarAttribute = "车辆属性"
CarType = "车辆类型"
fieldnames = [Area, RoadType, CarAttribute, CarType, CaseNo, EntryTimes, leaveTimes, ExcepetValue,
ActualValue, Testresult]
mydict = [
{CaseNo: i[0], Area: i[1], RoadType: i[2], CarAttribute: i[3], CarType: i[4], EntryTimes: i[5],
leaveTimes: i[6], ExcepetValue: i[7], ActualValue: sumpay,
Testresult: self.testresult}]
with open('测试明细.csv', 'a+', encoding='UTF8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
if self.b == 0:
writer.writeheader()
self.b = self.b + 1
writer.writerows(mydict)
print("测试结果汇总报告:"+"测试通过:"f"{self.m}"+"条案例"+","+"测试失败:"f"{self.n}"+"条案例")
Area="测试地区"
RoadType="路段类型"
CarType="车辆类型"
CarAttributes="车辆属性"
TestPasses="测试通过数"
Testfails="测试失败数"
fieldnames = [Area, RoadType, CarType, CarAttributes,TestPasses,Testfails]
mydict = [{Area:self.comboBox_2.currentText(), RoadType:self.comboBox_3.currentText() , CarType:self.comboBox_4.currentText(),CarAttributes:self.comboBox_5.currentText(),TestPasses:self.m,Testfails:self.n}]
with open('测试报告.csv', 'w', encoding='UTF8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(mydict)
except Exception as e:
print(e)
if __name__ == '__main__':
app = QApplication(sys.argv)
mc = MyClass()
sys.exit(app.exec_())
jifei3.py
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(781, 409)
self.widget = QtWidgets.QWidget(Form)
self.widget.setGeometry(QtCore.QRect(66, 50, 675, 270))
self.widget.setObjectName("widget")
self.gridLayout = QtWidgets.QGridLayout(self.widget)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setObjectName("gridLayout")
self.label_5 = QtWidgets.QLabel(self.widget)
self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.label_5, 0, 0, 1, 1)
self.comboBox_2 = QtWidgets.QComboBox(self.widget)
self.comboBox_2.setEditable(True)
self.comboBox_2.setDuplicatesEnabled(False)
self.comboBox_2.setObjectName("comboBox_2")
self.comboBox_2.addItem("")
self.comboBox_2.addItem("")
self.comboBox_2.addItem("")
self.gridLayout.addWidget(self.comboBox_2, 0, 1, 1, 1)
self.label_6 = QtWidgets.QLabel(self.widget)
self.label_6.setObjectName("label_6")
self.gridLayout.addWidget(self.label_6, 0, 2, 1, 1)
self.comboBox_3 = QtWidgets.QComboBox(self.widget)
self.comboBox_3.setEditable(True)
self.comboBox_3.setDuplicatesEnabled(False)
self.comboBox_3.setObjectName("comboBox_3")
self.comboBox_3.addItem("")
self.comboBox_3.addItem("")
self.comboBox_3.addItem("")
self.comboBox_3.addItem("")
self.comboBox_3.addItem("")
self.comboBox_3.addItem("")
self.gridLayout.addWidget(self.comboBox_3, 0, 3, 1, 1)
self.label_7 = QtWidgets.QLabel(self.widget)
self.label_7.setObjectName("label_7")
self.gridLayout.addWidget(self.label_7, 0, 4, 1, 1)
self.comboBox_4 = QtWidgets.QComboBox(self.widget)
self.comboBox_4.setEditable(True)
self.comboBox_4.setDuplicatesEnabled(False)
self.comboBox_4.setObjectName("comboBox_4")
self.comboBox_4.addItem("")
self.comboBox_4.addItem("")
self.comboBox_4.addItem("")
self.comboBox_4.addItem("")
self.gridLayout.addWidget(self.comboBox_4, 0, 5, 1, 1)
self.label_9 = QtWidgets.QLabel(self.widget)
self.label_9.setObjectName("label_9")
self.gridLayout.addWidget(self.label_9, 0, 6, 1, 1)
self.comboBox_5 = QtWidgets.QComboBox(self.widget)
self.comboBox_5.setEditable(True)
self.comboBox_5.setDuplicatesEnabled(False)
self.comboBox_5.setObjectName("comboBox_5")
self.comboBox_5.addItem("")
self.comboBox_5.addItem("")
self.comboBox_5.addItem("")
self.gridLayout.addWidget(self.comboBox_5, 0, 7, 1, 1)
self.label = QtWidgets.QLabel(self.widget)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 8, 1, 1)
self.comboBox = QtWidgets.QComboBox(self.widget)
self.comboBox.setEditable(True)
self.comboBox.setDuplicatesEnabled(False)
self.comboBox.setObjectName("comboBox")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.gridLayout.addWidget(self.comboBox, 0, 9, 1, 1)
self.pushButton_2 = QtWidgets.QPushButton(self.widget)
self.pushButton_2.setObjectName("pushButton_2")
self.gridLayout.addWidget(self.pushButton_2, 0, 10, 1, 1)
self.pushButton = QtWidgets.QPushButton(self.widget)
self.pushButton.setObjectName("pushButton")
self.gridLayout.addWidget(self.pushButton, 1, 0, 1, 2)
self.lineEdit_4 = QtWidgets.QLineEdit(self.widget)
self.lineEdit_4.setObjectName("lineEdit_4")
self.gridLayout.addWidget(self.lineEdit_4, 1, 2, 1, 5)
self.label_8 = QtWidgets.QLabel(self.widget)
self.label_8.setObjectName("label_8")
self.gridLayout.addWidget(self.label_8, 2, 0, 1, 2)
self.textBrowser = QtWidgets.QTextBrowser(self.widget)
self.textBrowser.setObjectName("textBrowser")
self.gridLayout.addWidget(self.textBrowser, 3, 0, 1, 11)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label_5.setText(_translate("Form", "地区"))
self.comboBox_2.setCurrentText(_translate("Form", "全部"))
self.comboBox_2.setItemText(0, _translate("Form", "全部"))
self.comboBox_2.setItemText(1, _translate("Form", "大沥"))
self.comboBox_2.setItemText(2, _translate("Form", "永安"))
self.label_6.setText(_translate("Form", "区域类型"))
self.comboBox_3.setCurrentText(_translate("Form", "全部"))
self.comboBox_3.setItemText(0, _translate("Form", "全部"))
self.comboBox_3.setItemText(1, _translate("Form", "一类区域"))
self.comboBox_3.setItemText(2, _translate("Form", "二类区域"))
self.comboBox_3.setItemText(3, _translate("Form", "三类区域"))
self.comboBox_3.setItemText(4, _translate("Form", "一般路段"))
self.comboBox_3.setItemText(5, _translate("Form", "繁华路段"))
self.label_7.setText(_translate("Form", "车辆类型"))
self.comboBox_4.setCurrentText(_translate("Form", "全部"))
self.comboBox_4.setItemText(0, _translate("Form", "全部"))
self.comboBox_4.setItemText(1, _translate("Form", "小型车"))
self.comboBox_4.setItemText(2, _translate("Form", "中型车"))
self.comboBox_4.setItemText(3, _translate("Form", "大型车"))
self.label_9.setText(_translate("Form", "车辆属性"))
self.comboBox_5.setCurrentText(_translate("Form", "全部"))
self.comboBox_5.setItemText(0, _translate("Form", "全部"))
self.comboBox_5.setItemText(1, _translate("Form", "燃油车"))
self.comboBox_5.setItemText(2, _translate("Form", "新能源"))
self.label.setText(_translate("Form", "运行环境"))
self.comboBox.setCurrentText(_translate("Form", "测试环境"))
self.comboBox.setItemText(0, _translate("Form", "测试环境"))
self.comboBox.setItemText(1, _translate("Form", "正式环境"))
self.pushButton_2.setText(_translate("Form", "开始测试"))
self.pushButton.setText(_translate("Form", "导入excel"))
self.lineEdit_4.setText(_translate("Form", "C:/Users/Administrator/Desktop/jifei.xls"))
self.label_8.setText(_translate("Form", "测试结果"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)