代码拉取完成,页面将自动刷新
# -*- coding:utf-8 -*-
import os
import SendKeys
import unittest, HTMLTestRunner
from time import sleep
import win32api, win32con
from pywinauto.application import Application
from extendScript.ChangeTestCase import TestCaseNumIMPL
from extendScript.RWExcleIMPL import ExcelImpl
class SetPreProcessorTest():
def __init__(self, listValue=None):
self.ei = ExcelImpl()
self.listValue = self.ei.getOneTestCaseByExcel(type='PreProcessor', testNo=listValue)
self.startDEUPreProcessor(self.listValue)
def startDEUPreProcessor(self, data):
self.data = data
filePath = self.ei.getFilePath(type='PreProcessor')
appt = Application()
try:
self.app = appt.connect(title_re="DEUModelBuilder")
self.wfMain = self.app.DEUModelBuilder
except Exception as e:
self.app = appt.start(filePath)
self.wfMain = self.app.DEUModelBuilder
self.wfMain.Wait('ready')
# ..........
# 01、选择上球方式
self.setProcessorType(self.wfMain, data[1], data[2])
# 02、加载数据
self.wfMain[u"添加"].Click()
self.loadTestData(data[19])
# print self.wfMain["LISTBOX2"].item_texts()
# print self.wfMain['Edit3'].text_block()
# print self.wfMain['Edit10'].text_block()
# 03、加载LOD方案
# print self.wfMain['ComboBox3'].ItemTexts()
if data[3] in self.wfMain['ComboBox3'].ItemTexts():
for index in self.wfMain['ComboBox3'].ItemTexts():
if index == data[3]:
self.wfMain['ComboBox3'].Select(index)
else:
self.wfMain['WindowsForms10.Window.8.app.0.2bf8098_r14_ad16'].Click()
self.setLOD(data[9], data[3], int(data[4]), int(data[5]), int(data[6]), int(data[7]), int(data[8]))
for index in self.wfMain['ComboBox3'].ItemTexts():
if index == data[3]:
self.wfMain['ComboBox3'].Select(index)
# 04、设置投影方案
self.setKJCK(self.wfMain, data[10], data[11], data[12], data[13], data[14])
# 05、设置数据集编号
self.setDataSetNO(self.wfMain, int(data[18]))
# 06、设置输出路径
self.wfMain[u'浏览'].Click()
outputdata = os.getcwd() + "\\outputdata\\DataSet\\" + data[0] + "_" + str(int(data[18]))
self.setOUTPutData(self.app[u'另存为'], outputdata)
# 07、设置偏移XYZ值
self.setXYZ(self.wfMain, data[15], data[16], data[17])
# 08、点击开始
self.wfMain[u"开始"].Click()
while self.wfMain['Edit3'].IsEnabled() is False:
sleep(2)
# self.wfMain.Close()
# .........
def setProcessorType(self, winfrom, testData, testData1): # 上球方式
if testData == u'逐点上球':
winfrom[u'逐点上球'].Click()
if testData == u'共享上球':
winfrom[u'共享上球'].Click()
if testData1 == u'是':
winfrom[u'多参考点'].Click()
def loadTestData(self, loadpath): # 加载数据
openwin = self.app[u"打开"]
openwin[u'Edit1'].SetEditText(loadpath)
openwin[u'打开(&O)'].Click()
try:
openwin[u'打开(&O)'].Click()
except:
pass
datalistwf = openwin[u"DirectUIHWND2"]
(x, y) = ((datalistwf.Rectangle().right - datalistwf.Rectangle().left) / 2 + datalistwf.Rectangle().left,
(datalistwf.Rectangle().bottom - datalistwf.Rectangle().top) / 2 + datalistwf.Rectangle().top)
win32api.SetCursorPos((x, y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
SendKeys.SendKeys("^a")
openwin[u'打开(&O)'].Click()
def setLOD(self, youhua, lodName, lod1, lod2, lod3, lod4, lod5):
self.app[u"FormLOD"][u'增加'].Click()
formLodConfig = self.app['FormLODConfig']
formLodConfig['Edit2'].SetEditText(lodName)
if youhua == u"是":
formLodConfig["BUTTON1"].Click()
# LOD1
formLodConfig['Edit7'].SetEditText(lod1)
# LOD2
formLodConfig['Edit6'].SetEditText(lod2)
# LOD3
formLodConfig['Edit5'].SetEditText(lod3)
# LOD4
formLodConfig['Edit4'].SetEditText(lod4)
# LOD5
formLodConfig['Edit3'].SetEditText(lod5)
sleep(1)
# 新增加
formLodConfig[u'保存'].Click()
self.app['FormMyMessageBox'][u'确定'].Click()
# 关闭窗口
formLodConfig['Static1'].Click()
sleep(2)
def setKJCK(self, winfrom, prj, ty, zyjx, eastset, northset):
# 设置坐标系
if prj == u"WGS84":
winfrom['ComboBox2'].Select(0)
if prj == u"北京54":
winfrom['ComboBox2'].Select(1)
if prj == u"西安80":
winfrom['ComboBox2'].Select(2)
if prj == u"哈尔滨":
winfrom['ComboBox2'].Select(3)
sleep(1)
# 设置投影
if ty == u"高斯":
winfrom['ComboBox1'].Select(0)
if ty == u"UTM":
winfrom['ComboBox1'].Select(1)
sleep(1)
# 设置中央经线
winfrom['Edit8'].SetEditText(zyjx)
sleep(1)
# 设置东偏
winfrom['Edit10'].SetEditText(eastset)
sleep(1)
# 设置北偏
winfrom['Edit9'].SetEditText(northset)
sleep(1)
def setXYZ(self, winfrom, x, y, z):
# 设置X方向上偏移
winfrom['Edit7'].SetEditText(x)
sleep(1)
# 设置Y方向上偏移
winfrom['Edit5'].SetEditText(y)
sleep(1)
# 设置Z方向上偏移
winfrom['Edit6'].SetEditText(z)
sleep(1)
def setOUTPutData(self, winfrom, outputdata):
winfrom['Edit1'].SetEditText(outputdata)
winfrom[u'保存(&S)'].Click()
try:
winfrom[u'保存(&S)'].Click()
except Exception as e:
pass
def setDataSetNO(self, winfrom, strDataSetNO):
winfrom['Edit3'].SetEditText(strDataSetNO)
def getWinForm(self):
return (self.app, self.wfMain, self.listValue)
class ExtractTestGui(unittest.TestCase):
def setUp(self):
self.tcn = TestCaseNumIMPL()
self.svi = SetPreProcessorTest(listValue=self.tcn.getValue())
self.app, self.wfMain, self.listValue = self.svi.getWinForm()
def testinpath(self): # 检测加载数据
loadlistdata = []
data = os.listdir(self.listValue[19])
for filedir in data:
if filedir.split(".")[1].lower() == "ive":
loadlistdata.append(self.listValue[19] + "\\" + filedir)
self.assertEqual(loadlistdata, self.wfMain["LISTBOX2"].item_texts())
def testloadLOD(self): # LOD检测
datalod = self.listValue[3]
self.assertEqual(datalod, self.wfMain["COMBOBOX3"].selected_text())
def testprojection(self): # 投影检测
zuobiao = self.listValue[10]
self.assertEqual(zuobiao, self.wfMain['ComboBox2'].selected_text())
def testtouying(self):
touying = self.listValue[11]
self.assertEqual(touying, self.wfMain['ComboBox1'].selected_text())
def testdong(self):
dong = self.listValue[13]
self.assertEqual(int(dong), int(self.wfMain['Edit10'].text_block()))
def testbei(self):
bei = self.listValue[14]
self.assertEqual(int(bei), int(self.wfMain['Edit9'].text_block()))
def testzhongyang(self):
zhongyang = self.listValue[12]
self.assertEqual(int(zhongyang), int(self.wfMain['Edit8'].text_block()))
def testdataNumber(self): # 数据集编号检测
datano = self.listValue[18]
self.assertEqual(int(datano), int(self.wfMain['Edit3'].text_block()))
def testoutpath(self): # 检测输出路径
outputdata = os.getcwd() + "\\outputdata\\DataSet\\" + self.listValue[0] + "_" + str(int(self.listValue[18]))
while self.wfMain[u'开始'].IsEnabled() is False:
sleep(2)
self.assertTrue(
os.path.exists(outputdata + '.dscfg') and os.path.exists(outputdata + '.idx') and os.path.exists(
outputdata + '_0.db'))
def testx(self): # xyz偏移
xdata = str(round(self.listValue[15], 5))
wfMainData = str(round(float(self.wfMain['Edit7'].text_block()), 5))
self.assertEqual(xdata, wfMainData)
def testy(self):
ydata = str(round(self.listValue[16], 5))
wfMainData = str(round(float(self.wfMain['Edit5'].text_block()), 5))
self.assertEqual(ydata, wfMainData)
def testz(self):
zdata = str(round(self.listValue[17], 5))
wfMainData = str(round(float(self.wfMain['Edit6'].text_block()), 5))
self.assertEqual(zdata, wfMainData)
def tearDown(self):
pass
class initThisTester:
def __init__(self):
pass
def delReportAndOutdata(self):
print u"测试环境初始化,请稍后!"
self.delReport()
self.delOutdata()
def delReport(self):
self.delAllfolder(os.getcwd() + "\\ReportFile")
def delOutdata(self):
self.delAllfolder(os.getcwd() + "\\outputdata\\DataSet")
def delAllfolder(self, filepath):
for dfile in os.listdir(filepath):
os.remove(filepath + "\\" + dfile)
def closePreProcessor(self):
try:
app = Application().connect(title_re="DEUModelBuilder")
wfMain = app.DEUModelBuilder
sleep(1)
wfMain['关闭'].Click()
app['WindowsForms10.Window.8.app.0.2bf8098_r11_ad1']['确定'].Click()
except Exception as e:
print e
def jltext_preprocessor(self):
ei = ExcelImpl()
tcn = TestCaseNumIMPL()
tcn.setValue("TP1")
inittter = initThisTester()
# inittter.delReportAndOutdata()
listcase = ei.getTestCaseByExcel(type="PreProcessor")
for i in listcase:
print "=" * 100
print u"执行测试用例:" + i[0]
print i
SetPreProcessorTest(i[0])
tcn.setValue(i[0])
suite = unittest.makeSuite(ExtractTestGui)
filename = os.getcwd() + "\\ReportFile\\" + i[0] + "_" + str(i[18]) + "_Report.html"
fp = file(filename, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'自动化测试报告',
description=u'自动化测试报告,测试用例' + i[0] + "_" + str(i[18]))
runner.run(suite)
inittter.closePreProcessor()
tcn.setValue("TP1")
if __name__ == '__main__':
ei = ExcelImpl()
tcn = TestCaseNumIMPL()
tcn.setValue("TP1")
inittter = initThisTester()
inittter.delReportAndOutdata()
listcase = ei.getTestCaseByExcel(type="PreProcessor")
for i in listcase:
print "=" * 100
print u"执行测试用例:" + i[0]
print i
SetPreProcessorTest(i[0])
tcn.setValue(i[0])
suite = unittest.makeSuite(ExtractTestGui)
filename = os.getcwd() + "\\ReportFile\\" + i[0] + "_" + str(i[18]) + "_Report.html"
fp = file(filename, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'自动化测试报告',
description=u'自动化测试报告,测试用例' + i[0] + "_" + str(i[18]))
runner.run(suite)
inittter.closePreProcessor()
tcn.setValue("TP1")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。