test case
This commit is contained in:
parent
1a93b00971
commit
08fec11b3f
41
runtest.py
41
runtest.py
|
@ -1,6 +1,10 @@
|
|||
import unittest
|
||||
from test_case.transaction.record_outcome_spec import RecordOutcomeSpec
|
||||
from test_case.invoice.income_invoice_spec import RecordIncomeInvoiceSpec
|
||||
from test_case.transaction.record_income_spec import RecordIncomeSpec
|
||||
from test_case.transaction.record_transfer_spec import RecordTransterSpec
|
||||
from test_case.transaction.outcome_voucher_spec import OutcomeVoucherSpec
|
||||
from test_case.invoice.record_input_invoice_spec import RecordInputInvoiceSpec
|
||||
from test_case.invoice.record_output_invoice_spec import RecordOutputInvoiceSpec
|
||||
from HTMLTestRunner import HTMLTestRunner
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -14,10 +18,39 @@ if __name__ == '__main__':
|
|||
# testSuite.addTest(RecordOutcomeSpec('test6'))
|
||||
# testSuite.addTest(RecordOutcomeSpec('test7'))
|
||||
# testSuite.addTest(RecordOutcomeSpec('test8'))
|
||||
|
||||
# #记收入测试
|
||||
# testSuite.addTest(RecordIncomeSpec('test1'))
|
||||
# testSuite.addTest(RecordIncomeSpec('test2'))
|
||||
# testSuite.addTest(RecordIncomeSpec('test3'))
|
||||
# testSuite.addTest(RecordIncomeSpec('test4'))
|
||||
# testSuite.addTest(RecordIncomeSpec('test5'))
|
||||
# testSuite.addTest(RecordIncomeSpec('test6'))
|
||||
# testSuite.addTest(RecordIncomeSpec('test7'))
|
||||
# testSuite.addTest(RecordIncomeSpec('test8'))
|
||||
|
||||
#记账户互转
|
||||
# testSuite.addTest(RecordTransterSpec('test1'))
|
||||
# testSuite.addTest(RecordTransterSpec('test2'))
|
||||
# testSuite.addTest(RecordTransterSpec('test3'))
|
||||
# testSuite.addTest(RecordTransterSpec('test4'))
|
||||
# testSuite.addTest(RecordTransterSpec('test5'))
|
||||
# testSuite.addTest(RecordTransterSpec('test6'))
|
||||
# testSuite.addTest(RecordTransterSpec('test7'))
|
||||
# testSuite.addTest(RecordTransterSpec('test8'))
|
||||
|
||||
#记收票测试
|
||||
testSuite.addTest(RecordIncomeInvoiceSpec('test1'))
|
||||
testSuite.addTest(RecordIncomeInvoiceSpec('test2'))
|
||||
# testSuite.addTest(RecordInputInvoiceSpec('test1'))
|
||||
# testSuite.addTest(RecordInputInvoiceSpec('test2'))
|
||||
|
||||
#记开票测试
|
||||
testSuite.addTest(RecordOutputInvoiceSpec('test1'))
|
||||
testSuite.addTest(RecordOutputInvoiceSpec('test2'))
|
||||
|
||||
#支出-生成凭证测试
|
||||
# testSuite.addTest(OutcomeVoucherSpec('test1'))
|
||||
|
||||
testReport = open('./report/result.html','wb')
|
||||
runner = HTMLTestRunner(stream = testReport,title = "记收支测试报告",description='测试用例执行情况:')
|
||||
runner = HTMLTestRunner(stream = testReport,title = "管有账测试报告",description='测试用例执行情况:')
|
||||
runner.run(testSuite)
|
||||
testReport.close()
|
|
@ -1,61 +0,0 @@
|
|||
import unittest
|
||||
import sys
|
||||
import os
|
||||
from selenium import webdriver
|
||||
import time
|
||||
import random
|
||||
from collections import Iterator
|
||||
from HTMLTestRunner import HTMLTestRunner
|
||||
sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/' + '../../'))
|
||||
from test_case.login.login_page import LoginPage
|
||||
from .invoice_page import InvoicePage
|
||||
from test_data.record_income_invoice_data import *
|
||||
|
||||
|
||||
#前置条件:新账套
|
||||
class RecordIncomeInvoiceSpec(unittest.TestCase):
|
||||
''' 记收票测试 '''
|
||||
|
||||
def setUp(self):
|
||||
self.driver = webdriver.Chrome()
|
||||
self.driver.maximize_window()
|
||||
self.baseUrl = 'http://guanplus-app-accountingfirm-web-dev-1.cn-north-1.eb.amazonaws.com.cn'
|
||||
login_page = LoginPage(self.baseUrl, self.driver)
|
||||
login_page.login('18514509382', 'qq123456')
|
||||
self.invoice_page = InvoicePage(self.driver)
|
||||
self.invoice_page.goToCompany('一般纳税人07251419')
|
||||
self.invoice_page.goToInvoice(self.baseUrl,'input')
|
||||
|
||||
def test1(self):
|
||||
'''记录所有类别的收票-普票'''
|
||||
|
||||
commonPublicInvoice = ['1','普票','内部代表']
|
||||
for commonItems in commonIncomeInvoiceCategory:
|
||||
self.invoice_page.recordCommonIncomeInvoice(commonPublicInvoice,commonItems)
|
||||
self.invoice_page.goToInvoice(self.baseUrl,'input')
|
||||
|
||||
def test2(self):
|
||||
'''记所有类别的收票-专票'''
|
||||
specialPublicInvoice = ['1','专票','内部代表']
|
||||
invoiceNumList = []
|
||||
for i in range(0,33):
|
||||
invoiceNumList.append(self.invoiceNum())
|
||||
|
||||
for specialItems,invoiceNum in zip(specialIncomeInvoiceCategory,invoiceNumList):
|
||||
self.invoice_page.recordSpecialIncomeInvoice(specialPublicInvoice,invoiceNum,specialItems)
|
||||
self.invoice_page.goToInvoice(self.baseUrl,'input')
|
||||
|
||||
#生成8位随机正数
|
||||
def invoiceNum(self):
|
||||
invoiceNum = ''
|
||||
for i in range(0,8) :
|
||||
invoiceNum = invoiceNum + str(random.randint(0,9))
|
||||
return invoiceNum
|
||||
|
||||
def tearDown(self):
|
||||
self.driver.quit()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
@ -2,108 +2,152 @@ import time
|
|||
import sys
|
||||
import os
|
||||
sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/' + '../..'))
|
||||
from util.setDate_util import SetDate
|
||||
from util.set_date_util import SetDate
|
||||
|
||||
|
||||
class InvoicePage:
|
||||
itemsNumber = ''
|
||||
invoiceType = ''
|
||||
invoiceClassfiy = ''
|
||||
|
||||
def setItemsNum(self,itemsNum):
|
||||
global itemsNumber
|
||||
itemsNumber = itemsNum
|
||||
|
||||
def __init__(self, driver):
|
||||
def __init__(self, driver,invoiceType):
|
||||
self.driver = driver
|
||||
self.date_button_xpath = '//*[@id="datePiker"]/span/span[2]'
|
||||
|
||||
# 进入账套
|
||||
def goToCompany(self, companyName):
|
||||
self.driver.find_element_by_link_text(companyName).click()
|
||||
time.sleep(5)
|
||||
self.invoiceType = invoiceType
|
||||
|
||||
# 进入记发票页面
|
||||
def goToInvoice(self,baseUrl,invoiceType):
|
||||
self.driver.get(baseUrl + '/app/invoice/tab/new-' + invoiceType + '-invoice')
|
||||
def goToInvoice(self,baseUrl):
|
||||
self.driver.get(baseUrl + '/app/invoice/tab/new-' + self.invoiceType + '-invoice')
|
||||
time.sleep(5)
|
||||
|
||||
#进入凭证列表页面
|
||||
def goToVoucherPage(self,baseUrl):
|
||||
self.driver.get(baseUrl + '/app/finance/voucher')
|
||||
#进入发票列表页面
|
||||
def goToInvoiceList(self,baseUrl):
|
||||
self.driver.get(baseUrl + '/app/invoice/' + self.invoiceType + '-invoice')
|
||||
time.sleep(5)
|
||||
|
||||
# 设置收票类型
|
||||
def setIncomeInvoiceType(self, incomeInvoiceType):
|
||||
global invoiceType
|
||||
invoiceType = incomeInvoiceType
|
||||
income_invoice_type_xpath = '//*[@id="body"]/tab/fgff/div/div[2]/ul/div[1]/div/label[2]/ng-select/div/div[2]/span'
|
||||
self.driver.find_element_by_xpath(income_invoice_type_xpath).click()
|
||||
time.sleep(5)
|
||||
self.driver.find_element_by_link_text(incomeInvoiceType).click()
|
||||
time.sleep(3)
|
||||
# 设置发票类型
|
||||
def setInvoiceType(self, invoiceClass):
|
||||
global invoiceClassfiy
|
||||
invoiceClassfiy = invoiceClass
|
||||
invoice_type_xpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/div[1]/div/label[2]/ng-select/div/div[2]/span/span'
|
||||
self.driver.find_element_by_xpath(invoice_type_xpath).click()
|
||||
time.sleep(2)
|
||||
self.driver.find_element_by_link_text(invoiceClass).click()
|
||||
time.sleep(2)
|
||||
|
||||
# 设置对方信息
|
||||
def setOtherInfo(self, otherInfo):
|
||||
otherInfo_xpath = '//*[@id="body"]/tab/fgff/div/div[2]/ul/div[1]/div/label[3]/ng-select/div/div[2]/span'
|
||||
if 'input' == self.invoiceType:
|
||||
otherInfo_xpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/div[1]/div/label[3]/ng-select/div/div[2]/span'
|
||||
elif 'output' == self.invoiceType:
|
||||
otherInfo_xpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/div[1]/div/label[4]/ng-select/div/div[2]/span'
|
||||
else:
|
||||
print('========================================发票类型【invoiceType】错误============================================')
|
||||
self.driver.find_element_by_xpath(otherInfo_xpath).click()
|
||||
time.sleep(5)
|
||||
self.driver.find_element_by_link_text(otherInfo).click()
|
||||
time.sleep(2)
|
||||
|
||||
#设置发票状态
|
||||
def setInvoiceStatus(self,invoiceStatus):
|
||||
invoiceStatusXpath = '//*[@id="body"]/tab/new-output-invoice/div/div[2]/ul/div[1]/div/label[3]/ng-select/div/div[2]/span'
|
||||
self.driver.find_element_by_xpath(invoiceStatusXpath).click()
|
||||
time.sleep(2)
|
||||
self.driver.find_element_by_link_text(invoiceStatus).click()
|
||||
time.sleep(2)
|
||||
|
||||
#设置发票号码
|
||||
def setInvoiceNum(self,invoiceNum):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/div[1]/div/label[4]/div/input').clear()
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/div[1]/div/label[4]/div/input').send_keys(invoiceNum)
|
||||
if 'input' == self.invoiceType:
|
||||
invoiceNumXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/div[1]/div/label[4]/div/input'
|
||||
elif 'output' == self.invoiceType:
|
||||
invoiceNumXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/div[1]/div/label[5]/div/input'
|
||||
self.driver.find_element_by_xpath(invoiceNumXpath).clear()
|
||||
self.driver.find_element_by_xpath(invoiceNumXpath).send_keys(invoiceNum)
|
||||
|
||||
#设置类别
|
||||
def setCategory(self,category):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[1]/ng-select/div/div[2]/span').click()
|
||||
categoryButtonXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[1]/ng-select/div/div[2]/span'
|
||||
self.driver.find_element_by_xpath(categoryButtonXpath).click()
|
||||
time.sleep(5)
|
||||
firstXpath = '//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[1]/ng-select/div/div[2]/ul/li[' + category[0] + ']/div'
|
||||
firstXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[1]/ng-select/div/div[2]/ul/li[' + category[0] + ']/div'
|
||||
self.driver.find_element_by_xpath(firstXpath).click()
|
||||
if 1 == int(category[1]):
|
||||
secondXpath = '//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[1]/ng-select/div/div[2]/div/div[1]/div/button/div'
|
||||
secondXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[1]/ng-select/div/div[2]/div/div[1]/div/button/div'
|
||||
else:
|
||||
secondXpath = '//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[1]/ng-select/div/div[2]/div/div['+ category[1] + ']/div[2]/button/div'
|
||||
secondXpath = '//*[@id="body"]/tab/new-' + self.invoiceType + '-invoice/div/div[2]/ul/table/tbody/tr[1]/td[1]/ng-select/div/div[2]/div/div['+ category[1] + ']/div[2]/button/div'
|
||||
self.driver.find_element_by_xpath(secondXpath).click()
|
||||
|
||||
#设置部门
|
||||
#设置部门性质
|
||||
def setDepartment(self,departmentName):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[2]/ng-select/div/div[2]/span').click()
|
||||
departmentXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[2]/ng-select/div/div[2]/span'
|
||||
self.driver.find_element_by_xpath(departmentXpath).click()
|
||||
self.driver.find_element_by_link_text(departmentName).click()
|
||||
|
||||
#设置税率
|
||||
def setRate(self,rate):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[3]/ng-select/div/div[2]/span').click()
|
||||
rateXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[3]/ng-select/div/div[2]/span'
|
||||
self.driver.find_element_by_xpath(rateXpath).click()
|
||||
self.driver.find_element_by_link_text(rate).click()
|
||||
|
||||
#设置进项税类别
|
||||
def setInputTax(self,taxCategory):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[4]/ng-select/div/div[2]/span').click()
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/new-input-invoice/div/div[2]/ul/table/tbody/tr[1]/td[4]/ng-select/div/div[2]/span').click()
|
||||
self.driver.find_element_by_link_text(taxCategory).click()
|
||||
|
||||
#设置价税合计金额
|
||||
def setMoney(self,money):
|
||||
if '普票' == invoiceType:
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[4]/bp-input/input').clear()
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[4]/bp-input/input').send_keys(money)
|
||||
|
||||
if 'input' == self.invoiceType:
|
||||
if '普票' == invoiceClassfiy:
|
||||
moneyXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[4]/bp-input/input'
|
||||
elif '专票' == invoiceClassfiy:
|
||||
moneyXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[5]/bp-input/input'
|
||||
else:
|
||||
print('====================================发票类别【invoiceClassfiy】设置错误==============================================')
|
||||
elif 'output' == self.invoiceType:
|
||||
moneyXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[4]/bp-input/input'
|
||||
else:
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[5]/bp-input/input').clear()
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[5]/bp-input/input').send_keys(money)
|
||||
print('=============================================发票类别【invoiceType】设置错误============================================================')
|
||||
# if '普票' == invoiceClassfiy:
|
||||
# moneyXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[4]/bp-input/input'
|
||||
# elif '专票' == invoiceClassfiy:
|
||||
# moneyXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[5]/bp-input/input'
|
||||
# else:
|
||||
# print('====================================发票类别【invoiceClassfiy】设置错误======================================================')
|
||||
self.driver.find_element_by_xpath(moneyXpath).clear()
|
||||
self.driver.find_element_by_xpath(moneyXpath).send_keys(money)
|
||||
|
||||
#设置备注
|
||||
def setRemark(self,remark=None):
|
||||
if '普票' == invoiceType:
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[5]/input').clear()
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[5]/input').send_keys(remark)
|
||||
if 'input' == self.invoiceType:
|
||||
if '普票' == invoiceClassfiy:
|
||||
remarkXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[5]/input'
|
||||
elif '专票' == invoiceClassfiy:
|
||||
remarkXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[6]/input'
|
||||
else:
|
||||
print('====================================发票类别【invoiceClassfiy】设置错误==============================================')
|
||||
elif 'output' == self.invoiceType:
|
||||
remarkXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/table/tbody/tr[1]/td[5]/input'
|
||||
else:
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[6]/input').clear()
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/table/tbody/tr[1]/td[6]/input').send_keys(remark)
|
||||
|
||||
#点击保存按钮
|
||||
def clickSaveButton(self):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/tab/fgff/div/div[2]/ul/div[3]/div/span/button[2]').click()
|
||||
print('=============================================发票类别【invoiceType】设置错误============================================================')
|
||||
self.driver.find_element_by_xpath(remarkXpath).clear()
|
||||
self.driver.find_element_by_xpath(remarkXpath).send_keys(remark)
|
||||
|
||||
#点击保存按钮
|
||||
def clickSaveButton(self):
|
||||
saveButtonXpath = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/div[3]/div/span/button[2]'
|
||||
self.driver.find_element_by_xpath(saveButtonXpath).click()
|
||||
time.sleep(5)
|
||||
|
||||
#点击保存并新增按钮
|
||||
def clickSaveAndAdd(self):
|
||||
saveAndAdd = '//*[@id="body"]/tab/new-'+ self.invoiceType +'-invoice/div/div[2]/ul/div[3]/div/span/button[1]'
|
||||
self.driver.find_element_by_xpath(saveAndAdd).click()
|
||||
time.sleep(3)
|
||||
|
||||
#普票-设置明细:类别,部门性质,税率,价税合计金额,备注 items 是一个list [类别,部门性质,税率,价税合计金额,备注]
|
||||
def setCommonInvoiceItems(self,commonItems):
|
||||
self.setCategory(commonItems[0])
|
||||
|
@ -114,15 +158,16 @@ class InvoicePage:
|
|||
|
||||
#普票-设置收票的记账日期,发票类型,对方信息 publicInvoice 是一个list,[记账日期,发票类型,对方信息]
|
||||
def setCommonPublicInvoice(self,commonPublicInvoice):
|
||||
SetDate(self.driver,self.date_button_xpath,commonPublicInvoice[0])
|
||||
self.setIncomeInvoiceType(commonPublicInvoice[1])
|
||||
date_button_xpath = '//*[@id="datePiker"]/span/span[2]'
|
||||
SetDate(self.driver,date_button_xpath,commonPublicInvoice[0])
|
||||
self.setInvoiceType(commonPublicInvoice[1])
|
||||
self.setOtherInfo(commonPublicInvoice[2])
|
||||
|
||||
# 记收票-普票
|
||||
# 记收票-普票 通过点击保存并新增按钮
|
||||
def recordCommonIncomeInvoice(self,commonPublicInvoice,commonItems):
|
||||
self.setCommonPublicInvoice(commonPublicInvoice)
|
||||
self.setCommonInvoiceItems(commonItems)
|
||||
self.clickSaveButton()
|
||||
self.clickSaveAndAdd()
|
||||
|
||||
#专票-设置明细:类别,部门性质,税率,进项税类别,价税合计金额,备注 items 是一个list [类别,部门性质,税率,进项税类别,价税合计金额,备注]
|
||||
def setSpecialInvoiceItems(self,specialItems):
|
||||
|
@ -135,13 +180,36 @@ class InvoicePage:
|
|||
|
||||
#专票-设置收票的记账日期,发票类型,对方信息,发票号码 publicInvoice 是一个list,[记账日期,发票类型,对方信息,发票号码]
|
||||
def setSpecialPublicInvoice(self,publicInvoice,invoiceNum):
|
||||
SetDate(self.driver,self.date_button_xpath,publicInvoice[0])
|
||||
self.setIncomeInvoiceType(publicInvoice[1])
|
||||
date_button_xpath = '//*[@id="datePiker"]/span/span[2]'
|
||||
SetDate(self.driver,date_button_xpath,publicInvoice[0])
|
||||
self.setInvoiceType(publicInvoice[1])
|
||||
self.setOtherInfo(publicInvoice[2])
|
||||
self.setInvoiceNum(invoiceNum)
|
||||
|
||||
# 记收票-专票
|
||||
# 记收票-专票 通过点击保存并新增按钮
|
||||
def recordSpecialIncomeInvoice(self,publicInvoice,invoiceNum,specialItems):
|
||||
self.setSpecialPublicInvoice(publicInvoice,invoiceNum)
|
||||
self.setSpecialInvoiceItems(specialItems)
|
||||
self.clickSaveButton()
|
||||
self.clickSaveAndAdd()
|
||||
|
||||
#设置开票-记账日期,发票类别,发票状态,对方信息,发票号码 outputPublic [记账日期,发票类别,发票状态,对方信息] outputInvoiceNum 发票号码
|
||||
def setOutputInvoicePublic(self,outputPublic,outputInvoiceNum):
|
||||
SetDate(self.driver,'//*[@id="datePiker"]/span/span[2]',outputPublic[0])
|
||||
self.setInvoiceType(outputPublic[1])
|
||||
self.setInvoiceStatus(outputPublic[2])
|
||||
self.setOtherInfo(outputPublic[3])
|
||||
self.setInvoiceNum(outputInvoiceNum)
|
||||
|
||||
#设置开票明细-类别,部门性质,税率,价税合计金额,备注 outputItems [类别,部门性质,税率,价税合计金额,备注]
|
||||
def setOutputInvoiceItems(self,outputItems):
|
||||
self.setCategory(outputItems[0])
|
||||
self.setDepartment(outputItems[1])
|
||||
self.setRate(outputItems[2])
|
||||
self.setMoney(outputItems[3])
|
||||
self.setRemark(outputItems[4])
|
||||
|
||||
# 记开票 通过点击保存并新增按钮
|
||||
def recordOutputInvoice(self,outputPublic,outputInvoiceNum,outputItems):
|
||||
self.setOutputInvoicePublic(outputPublic,outputInvoiceNum)
|
||||
self.setOutputInvoiceItems(outputItems)
|
||||
self.clickSaveAndAdd()
|
|
@ -11,7 +11,7 @@ class LoginPage:
|
|||
self.url = url
|
||||
self.driver = driver
|
||||
|
||||
def login(self,username,password):
|
||||
def login(self,account):
|
||||
#open url
|
||||
self.driver.get(self.url)
|
||||
#locate username
|
||||
|
@ -19,13 +19,13 @@ class LoginPage:
|
|||
#clear username text
|
||||
username_text.clear()
|
||||
#input username
|
||||
username_text.send_keys(username)
|
||||
username_text.send_keys(account[0])
|
||||
#locate password
|
||||
password_text = self.driver.find_element_by_id(self.pass_text_id)
|
||||
#clear password
|
||||
password_text.clear()
|
||||
#input password
|
||||
password_text.send_keys(password)
|
||||
password_text.send_keys(account[1])
|
||||
#locate login button
|
||||
login_button = self.driver.find_element_by_id(self.login_button_id)
|
||||
#click login button
|
||||
|
|
|
@ -19,8 +19,7 @@ class LoginTest(unittest.TestCase):
|
|||
|
||||
def test_login(self):
|
||||
loginPage = LoginPage(self.url, self.driver)
|
||||
loginPage.login(self.pythonData['username'],
|
||||
self.pythonData['password'])
|
||||
loginPage.login(['18514509382','qq123456'])
|
||||
self.assertEqual("杨春红",self.driver.find_element_by_xpath('//*[@id="personalInfoDropdownMenu"]/span').text)
|
||||
|
||||
def tearDown(self):
|
||||
|
|
|
@ -7,8 +7,10 @@ from collections import Iterator
|
|||
from HTMLTestRunner import HTMLTestRunner
|
||||
sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/' + '../../'))
|
||||
from test_case.login.login_page import LoginPage
|
||||
from transaction_page import TransactionPage
|
||||
from test_data.record_outcome_data import *
|
||||
from .transaction_page import TransactionPage
|
||||
from test_data.record_income_data import *
|
||||
from util.enter_company_util import EnterCompany
|
||||
from config import *
|
||||
|
||||
|
||||
#前置条件:新账套
|
||||
|
@ -17,13 +19,9 @@ class RecordIncomeSpec(unittest.TestCase):
|
|||
|
||||
def setUp(self):
|
||||
self.driver = webdriver.Chrome()
|
||||
self.driver.maximize_window()
|
||||
self.baseUrl = 'https://web-gyz-stage.guanplus.com'
|
||||
login_page = LoginPage(self.baseUrl, self.driver)
|
||||
login_page.login('18514509382', 'qq123456')
|
||||
EnterCompany(self.driver,Environment)
|
||||
transaction_page = TransactionPage(self.driver,'income')
|
||||
transaction_page.goToCompany('testau1')
|
||||
transaction_page.goToTransactionModule(self.baseUrl)
|
||||
transaction_page.goToTransactionModule(BaseUrl)
|
||||
transaction_page.goToTransactionPage('记收入')
|
||||
|
||||
def test1(self):
|
||||
|
@ -37,7 +35,7 @@ class RecordIncomeSpec(unittest.TestCase):
|
|||
'''交易账户-空校验'''
|
||||
|
||||
transaction_page = TransactionPage(self.driver,'income')
|
||||
transaction_page.setCategory('1',['1','利息收入'])
|
||||
transaction_page.setCategory('1',['1','1'])
|
||||
transaction_page.setMoney('123')
|
||||
transaction_page.clickSaveButton()
|
||||
self.assertEqual('请填写交易账户!',self.driver.find_element_by_xpath('//*[@id="body"]/detail/income/div/div[1]/alert/div').text[-8:])
|
||||
|
@ -56,43 +54,55 @@ class RecordIncomeSpec(unittest.TestCase):
|
|||
'''金额-空校验'''
|
||||
|
||||
transaction_page = TransactionPage(self.driver,'income')
|
||||
transaction_page.setCategory('1',['1','利息收入'])
|
||||
transaction_page.setCategory('1',['1','1'])
|
||||
transaction_page.setAccount('现金')
|
||||
transaction_page.clickSaveButton()
|
||||
self.assertEqual('金额不能为0!',self.driver.find_element_by_xpath('//*[@id="body"]/detail/income/div/div[1]/alert/div').text[-7:])
|
||||
# self.assertEqual('请填写完整!',self.driver.find_element_by_xpath('//*[@id="body"]/detail/income/div/div[1]/alert/div').text[-6:])
|
||||
|
||||
def test5(self):
|
||||
'''金额为0测试'''
|
||||
|
||||
transaction_page = TransactionPage(self.driver,'income')
|
||||
transaction_page.setCategory('1',['1','利息收入'])
|
||||
transaction_page.setCategory('1',['1','1'])
|
||||
transaction_page.setAccount('现金')
|
||||
transaction_page.setMoney('0')
|
||||
transaction_page.clickSaveButton()
|
||||
self.assertEqual('金额不能为0!',self.driver.find_element_by_xpath('//*[@id="body"]/detail/income/div/div[1]/alert/div').text[-7:])
|
||||
# self.assertEqual('请填写完整!',self.driver.find_element_by_xpath('//*[@id="body"]/detail/income/div/div[1]/alert/div').text[-6:])
|
||||
|
||||
def test6(self):
|
||||
'''成功记一笔收入测试'''
|
||||
|
||||
transaction_page = TransactionPage(self.driver,'income')
|
||||
transaction = ['1','现金','内部代表']
|
||||
items1 = ['1',['1','利息收入'],'111','利息收入']
|
||||
items1 = ['1',['1','1'],'111','利息收入']
|
||||
transaction_page.recordTransaction(transaction,items1)
|
||||
self.assertEqual(self.baseUrl + '/app/transaction/list',self.driver.current_url)
|
||||
self.assertEqual('保存成功',self.driver.find_element_by_xpath('//*[@id="body"]/detail/income/div/div[1]/alert/div').text[-4:])
|
||||
|
||||
def test7(self):
|
||||
'''成功记两笔明细支出测试'''
|
||||
'''成功记两笔明细收入测试'''
|
||||
|
||||
transaction_page = TransactionPage(self.driver,'income')
|
||||
publicTransaction = ['1','现金','内部代表']
|
||||
items1 = ['1',['1','利息收入'],'111','利息收入']
|
||||
items2 = ['2',['2','回收借出资金(收入)'],'121','资金往来']
|
||||
items1 = ['1',['1','1'],'111','利息收入']
|
||||
items2 = ['2',['2','1'],'121','资金往来']
|
||||
transaction_page.setPublicTransaction(publicTransaction)
|
||||
transaction_page.setTransactionItems(items1)
|
||||
transaction_page.clickAddItems()
|
||||
transaction_page.setTransactionItems(items2)
|
||||
transaction_page.clickSaveButton()
|
||||
self.assertEqual(self.baseUrl + '/app/transaction/list',self.driver.current_url)
|
||||
self.assertEqual(BaseUrl + '/app/transaction/list',self.driver.current_url)
|
||||
|
||||
def test8(self):
|
||||
'''成功记所有类别收入测试'''
|
||||
|
||||
transaction = ['1','现金','内部代表']
|
||||
transaction_page = TransactionPage(self.driver,'income')
|
||||
for income in RecordIncomeData:
|
||||
transaction_page.recordTransaction(transaction,income)
|
||||
transaction_page.goToTransactionModule(BaseUrl)
|
||||
self.assertEqual(BaseUrl + '/app/transaction/list',self.driver.current_url)
|
||||
|
||||
def tearDown(self):
|
||||
self.driver.quit()
|
||||
|
|
|
@ -9,120 +9,90 @@ sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/' + '../../'))
|
|||
from test_case.login.login_page import LoginPage
|
||||
from .transaction_page import TransactionPage
|
||||
from test_data.record_outcome_data import *
|
||||
from util.enter_company_util import EnterCompany
|
||||
from config import *
|
||||
|
||||
|
||||
#前置条件:新账套
|
||||
class RecordOutcomeSpec(unittest.TestCase):
|
||||
''' 记支出测试 '''
|
||||
|
||||
def setUp(self):
|
||||
self.driver = webdriver.Chrome()
|
||||
self.driver.maximize_window()
|
||||
self.baseUrl = 'http://guanplus-app-accountingfirm-web-test.cn-north-1.eb.amazonaws.com.cn'
|
||||
login_page = LoginPage(self.baseUrl, self.driver)
|
||||
login_page.login('18514509382', 'qq123456')
|
||||
transaction_page = TransactionPage(self.driver,'outcome')
|
||||
transaction_page.goToCompany('2206一般纳税人')
|
||||
transaction_page.goToTransactionModule(self.baseUrl)
|
||||
transaction_page.goToTransactionPage('记支出')
|
||||
EnterCompany(self.driver,Environment)
|
||||
self.transaction_page = TransactionPage(self.driver,'outcome')
|
||||
self.transaction_page.goToTransactionModule(BaseUrl)
|
||||
self.transaction_page.goToTransactionPage('记支出')
|
||||
|
||||
def test1(self):
|
||||
'''全空校验'''
|
||||
|
||||
transaction_page = TransactionPage(self.driver,'outcome')
|
||||
transaction_page.clickSaveButton()
|
||||
self.transaction_page.clickSaveButton()
|
||||
self.assertEqual('请填写交易账户!',self.driver.find_element_by_xpath('//*[@id="body"]/detail/outcome/div/div[1]/alert/div').text[-8:])
|
||||
|
||||
def test2(self):
|
||||
'''交易账户-空校验'''
|
||||
|
||||
transaction_page = TransactionPage(self.driver,'outcome')
|
||||
transaction_page.setCategory('1',['1','银行费用'])
|
||||
transaction_page.setMoney('123')
|
||||
transaction_page.clickSaveButton()
|
||||
self.transaction_page.setCategory('1',['1','1'])
|
||||
self.transaction_page.setMoney('123')
|
||||
self.transaction_page.clickSaveButton()
|
||||
self.assertEqual('请填写交易账户!',self.driver.find_element_by_xpath('//*[@id="body"]/detail/outcome/div/div[1]/alert/div').text[-8:])
|
||||
|
||||
def test3(self):
|
||||
'''类别-空校验'''
|
||||
|
||||
transaction_page = TransactionPage(self.driver,'outcome')
|
||||
transaction_page.setItemsNum('1')
|
||||
transaction_page.setAccount('现金')
|
||||
transaction_page.setMoney('111')
|
||||
transaction_page.clickSaveButton()
|
||||
self.transaction_page.setItemsNum('1')
|
||||
self.transaction_page.setAccount('现金')
|
||||
self.transaction_page.setMoney('111')
|
||||
self.transaction_page.clickSaveButton()
|
||||
self.assertEqual('请填写完整!',self.driver.find_element_by_xpath('//*[@id="body"]/detail/outcome/div/div[1]/alert/div').text[-6:])
|
||||
|
||||
def test4(self):
|
||||
'''金额-空校验'''
|
||||
|
||||
transaction_page = TransactionPage(self.driver,'outcome')
|
||||
transaction_page.setCategory('1',['1','银行费用'])
|
||||
transaction_page.setAccount('现金')
|
||||
transaction_page.clickSaveButton()
|
||||
self.transaction_page.setCategory('1',['1','1'])
|
||||
self.transaction_page.setAccount('现金')
|
||||
self.transaction_page.clickSaveButton()
|
||||
self.assertEqual('金额不能为0!',self.driver.find_element_by_xpath('//*[@id="body"]/detail/outcome/div/div[1]/alert/div').text[-7:])
|
||||
|
||||
def test5(self):
|
||||
'''金额为0测试'''
|
||||
|
||||
transaction_page = TransactionPage(self.driver,'outcome')
|
||||
transaction_page.setCategory('1',['1','银行费用'])
|
||||
transaction_page.setAccount('现金')
|
||||
transaction_page.setMoney('0')
|
||||
transaction_page.clickSaveButton()
|
||||
self.transaction_page.setCategory('1',['1','1'])
|
||||
self.transaction_page.setAccount('现金')
|
||||
self.transaction_page.setMoney('0')
|
||||
self.transaction_page.clickSaveButton()
|
||||
self.assertEqual('金额不能为0!',self.driver.find_element_by_xpath('//*[@id="body"]/detail/outcome/div/div[1]/alert/div').text[-7:])
|
||||
|
||||
def test6(self):
|
||||
'''成功记一笔支出测试'''
|
||||
|
||||
transaction_page = TransactionPage(self.driver,'outcome')
|
||||
transaction = ['1','现金','内部代表']
|
||||
items1 = ['1',['1','银行费用'],'111','行政支出']
|
||||
transaction_page.recordTransaction(transaction,items1)
|
||||
self.assertEqual(self.baseUrl + '/app/transaction/list',self.driver.current_url)
|
||||
items1 = ['1',['1','1'],'111','行政支出']
|
||||
self.transaction_page.recordTransaction(transaction,items1)
|
||||
self.assertEqual('保存成功',self.driver.find_element_by_xpath('//*[@id="body"]/detail/outcome/div/div[1]/alert/div').text[-4:])
|
||||
|
||||
def test7(self):
|
||||
'''成功记两笔明细支出测试'''
|
||||
|
||||
transaction_page = TransactionPage(self.driver,'outcome')
|
||||
publicTransaction = ['1','现金','内部代表']
|
||||
items1 = ['1',['1','银行费用'],'111','行政支出']
|
||||
items2 = ['2',['2','临时借出资金'],'211','资金往来']
|
||||
transaction_page.setPublicTransaction(publicTransaction)
|
||||
transaction_page.setTransactionItems(items1)
|
||||
transaction_page.clickAddItems()
|
||||
transaction_page.setTransactionItems(items2)
|
||||
transaction_page.clickSaveButton()
|
||||
self.assertEqual(self.baseUrl + '/app/transaction/list',self.driver.current_url)
|
||||
items1 = ['1',['1','1'],'111','行政支出']
|
||||
items2 = ['2',['2','1'],'211','资金往来']
|
||||
self.transaction_page.setPublicTransaction(publicTransaction)
|
||||
self.transaction_page.setTransactionItems(items1)
|
||||
self.transaction_page.clickAddItems()
|
||||
self.transaction_page.setTransactionItems(items2)
|
||||
self.transaction_page.clickSaveButton()
|
||||
self.assertEqual(BaseUrl + '/app/transaction/list',self.driver.current_url)
|
||||
|
||||
def test8(self):
|
||||
'''成功记所有类别支出测试'''
|
||||
|
||||
|
||||
transaction = ['1','现金','内部代表']
|
||||
transaction_page = TransactionPage(self.driver,'outcome')
|
||||
for outcome in recordOutcomeData:
|
||||
for outcome in RecordOutcomeData:
|
||||
transaction_page.recordTransaction(transaction,outcome)
|
||||
transaction_page.goToTransactionPage('记支出')
|
||||
self.assertEqual(self.baseUrl + '/app/transaction/list',self.driver.current_url)
|
||||
|
||||
# def test8(self):
|
||||
# '''记支出-生成凭证测试'''
|
||||
|
||||
# n = 0
|
||||
# transaction = ['1','现金','内部代表']
|
||||
# transaction_page = TransactionPage(self.driver,'outcome')
|
||||
# for outcome,vocherFirst in zip(recordOutcomeData,outcomeVoucherFirst):
|
||||
# n = n + 1
|
||||
# transaction_page.recordTransaction(transaction,outcome)
|
||||
# transaction_page.goToVoucherPage(self.baseUrl)
|
||||
# voucherFirstXpath = '//*[@id="body"]/finance/div/voucher/div[1]/div[3]/div[1]/div/table/tbody[' + str(n) + ']/tr[1]/td[4]'
|
||||
# self.assertEqual(vocherFirst[0],self.driver.find_element_by_xpath(voucherFirstXpath).text)
|
||||
# transaction_page.goToTransactionModule(self.baseUrl)
|
||||
# transaction_page.goToTransactionPage('记支出')
|
||||
# if 10 == n:
|
||||
# self.driver.find_element_by_xpath('//*[@id="body"]/finance/div/voucher/div[1]/div[3]/div[2]/div/pagination/ul/li[4]/a').click()
|
||||
# n = 0
|
||||
# transaction_page.goToTransactionModule(self.baseUrl)
|
||||
# self.assertEqual('支出合计: 4,359.00',self.driver.find_element_by_xpath('//*[@id="body"]/list/div/div[5]/div[2]/span').text)
|
||||
transaction_page.goToTransactionModule(BaseUrl)
|
||||
self.assertEqual(BaseUrl + '/app/transaction/list',self.driver.current_url)
|
||||
|
||||
def tearDown(self):
|
||||
self.driver.quit()
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import time
|
||||
import sys
|
||||
import os
|
||||
import logging
|
||||
sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/' + '../..'))
|
||||
from util.setDate_util import SetDate
|
||||
from util.set_date_util import SetDate
|
||||
|
||||
|
||||
class TransactionPage:
|
||||
|
@ -12,54 +13,42 @@ class TransactionPage:
|
|||
global itemsNumber
|
||||
itemsNumber = itemsNum
|
||||
|
||||
def __init__(self, driver,classify):
|
||||
def __init__(self, driver,transactionType):
|
||||
self.driver = driver
|
||||
self.classify = classify
|
||||
# 记一笔按钮
|
||||
self.record_buttton_xpath = '//*[@id="body"]/list/div/div[2]/div/ol/li[3]/button[2]'
|
||||
# 选择账户按钮
|
||||
self.account_button_xpath = '//*[@id="body"]/list/div/div[2]/div/ol/li[3]/div/button[1]'
|
||||
# 选择账户下拉菜单按钮
|
||||
self.account_dropdown_xpath = '//*[@id="body"]/list/div/div[2]/div/ol/li[3]/div/button[2]'
|
||||
#日历控件按钮
|
||||
self.date_button_xpath = '//*[@id="body"]/detail/outcome/div/div[2]/form/div[1]/div/p-calendar/span/span[2]'
|
||||
self.transactionType = transactionType
|
||||
|
||||
# 进入账套
|
||||
def goToCompany(self, companyName):
|
||||
self.driver.find_element_by_link_text(companyName).click()
|
||||
time.sleep(5)
|
||||
|
||||
# 进入收支模块
|
||||
# 进入收支列表
|
||||
def goToTransactionModule(self,baseUrl):
|
||||
self.driver.get(baseUrl + '/app/transaction/list')
|
||||
time.sleep(5)
|
||||
|
||||
# 进入记收支模块
|
||||
# 进入记收支页面
|
||||
def goToTransactionPage(self, transactionName):
|
||||
self.driver.find_element_by_xpath(self.record_buttton_xpath).click()
|
||||
time.sleep(5)
|
||||
self.driver.find_element_by_link_text(transactionName).click()
|
||||
time.sleep(5)
|
||||
try:
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/list/div/div[2]/div/ol/li[3]/button[2]').click()
|
||||
time.sleep(5)
|
||||
self.driver.find_element_by_link_text(transactionName).click()
|
||||
time.sleep(5)
|
||||
except Exception as e:
|
||||
print('====================================进入记收支页面失败……==============================')
|
||||
logging.exception(e)
|
||||
|
||||
|
||||
#进入凭证列表页面
|
||||
def goToVoucherPage(self,baseUrl):
|
||||
self.driver.get(baseUrl + '/app/finance/voucher')
|
||||
time.sleep(5)
|
||||
|
||||
# 点击选择账户导入按钮
|
||||
def clickAccountButton(self):
|
||||
self.driver.find_element_by_xpath(self.account_button_xpath).click()
|
||||
|
||||
# 设置交易账户
|
||||
def setAccount(self, accountName):
|
||||
account_name_xpath = '//*[@id="body"]/detail/'+ self.classify + '/div/div[2]/form/div[2]/div/ng-select/div/div[2]/span'
|
||||
account_name_xpath = '//*[@id="body"]/detail/'+ self.transactionType + '/div/div[2]/form/div[2]/div/ng-select/div/div[2]/span'
|
||||
self.driver.find_element_by_xpath(account_name_xpath).click()
|
||||
time.sleep(3)
|
||||
self.driver.find_element_by_link_text(accountName).click()
|
||||
|
||||
# 设置对方信息
|
||||
def setOtherInfo(self, otherInfo):
|
||||
otherInfo_xpath = '//*[@id="body"]/detail/'+ self.classify + '/div/div[2]/form/div[3]/div/ng-select/div/div[2]/span'
|
||||
otherInfo_xpath = '//*[@id="body"]/detail/'+ self.transactionType + '/div/div[2]/form/div[3]/div/ng-select/div/div[2]/span'
|
||||
self.driver.find_element_by_xpath(otherInfo_xpath).click()
|
||||
time.sleep(3)
|
||||
self.driver.find_element_by_link_text(otherInfo).click()
|
||||
|
@ -70,45 +59,55 @@ class TransactionPage:
|
|||
itemsNumber = itemNum
|
||||
categoryButton = ''
|
||||
if int(itemNum) < 2:
|
||||
categoryButton = '//*[@id="body"]/detail/' + self.classify + '/div/div[3]/div/table/tbody[1]/tr/th/ng-select/div/div[2]/span'
|
||||
categoryButton = '//*[@id="body"]/detail/' + self.transactionType + '/div/div[3]/div/table/tbody[1]/tr/th/ng-select/div/div[2]/span'
|
||||
else:
|
||||
categoryButton = '//*[@id="body"]/detail/' + self.classify + '/div/div[3]/div/table/tbody[1]/tr[' + itemNum + ']/th/ng-select/div/div[2]/span'
|
||||
categoryButton = '//*[@id="body"]/detail/' + self.transactionType + '/div/div[3]/div/table/tbody[1]/tr[' + itemNum + ']/th/ng-select/div/div[2]/span'
|
||||
self.driver.find_element_by_xpath(categoryButton).click()
|
||||
time.sleep(5)
|
||||
firstXpath = '//*[@id="body"]/detail/' + self.classify + '/div/div[3]/div/table/tbody[1]/tr/th/ng-select/div/div[2]/ul/li[' + category[0] + ']/div/div[1]'
|
||||
time.sleep(3)
|
||||
firstXpath = '//*[@id="body"]/detail/' + self.transactionType + '/div/div[3]/div/table/tbody[1]/tr/th/ng-select/div/div[2]/ul/li[' + category[0] + ']/div/div[1]'
|
||||
self.driver.find_element_by_xpath(firstXpath).click()
|
||||
time.sleep(5)
|
||||
self.driver.find_element_by_link_text(category[1]).click()
|
||||
time.sleep(3)
|
||||
if int(category[1]) == 1:
|
||||
secondXpath = '//*[@id="body"]/detail/'+ self.transactionType + '/div/div[3]/div/table/tbody[1]/tr/th/ng-select/div/div[2]/div/div[1]/div/button/div'
|
||||
else:
|
||||
secondXpath = '//*[@id="body"]/detail/'+ self.transactionType + '/div/div[3]/div/table/tbody[1]/tr/th/ng-select/div/div[2]/div/div['+ category[1] +']/div[2]/button/div'
|
||||
self.driver.find_element_by_xpath(secondXpath).click()
|
||||
|
||||
#设置金额
|
||||
def setMoney(self,money):
|
||||
if int(itemsNumber) < 2:
|
||||
moneyXpath = '//*[@id="body"]/detail/'+ self.classify + '/div/div[3]/div/table/tbody[1]/tr/td[1]/bp-input/input'
|
||||
moneyXpath = '//*[@id="body"]/detail/'+ self.transactionType + '/div/div[3]/div/table/tbody[1]/tr/td[1]/bp-input/input'
|
||||
else:
|
||||
moneyXpath = '//*[@id="body"]/detail/'+ self.classify + '/div/div[3]/div/table/tbody[1]/tr[' + itemsNumber + ']/td[1]/bp-input/input'
|
||||
moneyXpath = '//*[@id="body"]/detail/'+ self.transactionType + '/div/div[3]/div/table/tbody[1]/tr[' + itemsNumber + ']/td[1]/bp-input/input'
|
||||
self.driver.find_element_by_xpath(moneyXpath).clear()
|
||||
self.driver.find_element_by_xpath(moneyXpath).send_keys(money)
|
||||
|
||||
#设置备注
|
||||
def setRemark(self,remark=None):
|
||||
if int(itemsNumber) < 2:
|
||||
remarkXpath = '//*[@id="body"]/detail/' + self.classify + '/div/div[3]/div/table/tbody[1]/tr/td[2]/input'
|
||||
remarkXpath = '//*[@id="body"]/detail/' + self.transactionType + '/div/div[3]/div/table/tbody[1]/tr/td[2]/input'
|
||||
else:
|
||||
remarkXpath = '//*[@id="body"]/detail/' + self.classify + '/div/div[3]/div/table/tbody[1]/tr[' + itemsNumber + ']/td[2]/input'
|
||||
remarkXpath = '//*[@id="body"]/detail/' + self.transactionType + '/div/div[3]/div/table/tbody[1]/tr[' + itemsNumber + ']/td[2]/input'
|
||||
self.driver.find_element_by_xpath(remarkXpath).clear()
|
||||
self.driver.find_element_by_xpath(remarkXpath).send_keys(remark)
|
||||
|
||||
#点击新增明细按钮-新增一行
|
||||
def clickAddItems(self):
|
||||
addItemsXpath = '//*[@id="body"]/detail/'+ self.classify + '/div/div[4]/div[1]/a'
|
||||
addItemsXpath = '//*[@id="body"]/detail/'+ self.transactionType + '/div/div[4]/div[1]/a'
|
||||
self.driver.find_element_by_xpath(addItemsXpath).click()
|
||||
|
||||
#点击保存按钮
|
||||
def clickSaveButton(self):
|
||||
saveButtonXpath = '//*[@id="body"]/detail/' + self.classify + '/div/div[5]/div/span/button[2]'
|
||||
saveButtonXpath = '//*[@id="body"]/detail/' + self.transactionType + '/div/div[5]/div/span/button[2]'
|
||||
self.driver.find_element_by_xpath(saveButtonXpath).click()
|
||||
time.sleep(5)
|
||||
|
||||
#点击保存并新增按钮
|
||||
def clickSaveAndAddButton(self):
|
||||
saveAndButtonXpath = '//*[@id="body"]/detail/' + self.transactionType + '/div/div[5]/div/span/button[1]'
|
||||
self.driver.find_element_by_xpath(saveAndButtonXpath).click()
|
||||
time.sleep(3)
|
||||
|
||||
#设置明细:类别,金额,备注 items 是一个list [类别,金额,备注]
|
||||
def setTransactionItems(self,items):
|
||||
category = items[1]
|
||||
|
@ -118,18 +117,65 @@ class TransactionPage:
|
|||
|
||||
#设置收支的记账日期,交易账户,对方信息 publicTransaction 是一个list,[记账日期,交易账户,对方信息]
|
||||
def setPublicTransaction(self,publicTransaction):
|
||||
SetDate(self.driver,self.date_button_xpath,publicTransaction[0])
|
||||
date_button_xpath = '//*[@id="body"]/detail/'+ self.transactionType +'/div/div[2]/form/div[1]/div/p-calendar/span/span[2]'
|
||||
SetDate(self.driver,date_button_xpath,publicTransaction[0])
|
||||
self.setAccount(publicTransaction[1])
|
||||
self.setOtherInfo(publicTransaction[2])
|
||||
|
||||
# 记收支
|
||||
# 记收支-> 点击保存并新增按钮循环记收支
|
||||
def recordTransaction(self,publicTransaction,items):
|
||||
self.setPublicTransaction(publicTransaction)
|
||||
self.setTransactionItems(items)
|
||||
self.clickSaveButton()
|
||||
self.clickSaveAndAddButton()
|
||||
|
||||
# 记多笔收支
|
||||
def recordTransactions(self,publicTransaction,items):
|
||||
self.setPublicTransaction(publicTransaction)
|
||||
self.setTransactionItems(items)
|
||||
self.clickSaveButton()
|
||||
#####################################################账户互转##############################################################################
|
||||
# 设置转出账户
|
||||
def setTransferOut(self,accountOutName):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/detail/accounttransfers/div/div[2]/div/form/div[2]/ng-select[1]/div/div[2]/span').click()
|
||||
time.sleep(2)
|
||||
self.driver.find_element_by_link_text(accountOutName)
|
||||
|
||||
#设置转入账户
|
||||
def setTransferIn(self,accountInName):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/detail/accounttransfers/div/div[2]/div/form/div[2]/ng-select[2]/div/div[2]/span').click()
|
||||
time.sleep(2)
|
||||
self.driver.find_element_by_link_text(accountInName)
|
||||
|
||||
#设置资金流向 accountNames[转出账户,转入账户]
|
||||
def setFundFlow(self,accountOutName,accountInName):
|
||||
self.setTransferOut(accountOutName)
|
||||
self.setTransferIn(accountInName)
|
||||
|
||||
#账户互转-设置金额
|
||||
def setTransferMoney(self,money):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/detail/accounttransfers/div/div[2]/div/form/div[3]/bp-input/input').clear()
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/detail/accounttransfers/div/div[2]/div/form/div[3]/bp-input/input').send_keys(money)
|
||||
|
||||
#账户互转-设置备注
|
||||
def setTransferRemark(self,remark=None):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/detail/accounttransfers/div/div[2]/div/form/div[4]/input').clear()
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/detail/accounttransfers/div/div[2]/div/form/div[4]/input').send_keys(money)
|
||||
|
||||
#账户互转-点击保存按钮
|
||||
def transferClickSaveButton(self):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/detail/accounttransfers/div/div[3]/div/span/button[2]').click()
|
||||
time.sleep(5)
|
||||
|
||||
#账户互转-点击保存并新增按钮
|
||||
def transferClickSaveAndAddButton(self):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/detail/accounttransfers/div/div[3]/div/span/button[1]').click()
|
||||
time.sleep(2)
|
||||
|
||||
#记账户互转-点击保存并新增 transferPara [记账日期,转出账户,转入账户,金额,备注]
|
||||
def recordTransfer(self,transferPara):
|
||||
dateButtonXPath = '//*[@id="body"]/detail/accounttransfers/div/div[2]/div/form/div[1]/p-calendar/span/span[2]'
|
||||
SetDate(self.driver,dateButtonXPath,transferPara[0])
|
||||
self.setFundFlow(transferPara[1],transferPara[2])
|
||||
self.setTransferMoney(transferPara[3])
|
||||
self.setTransferRemark(transferPara[4])
|
||||
self.transferClickSaveAndAddButton()
|
||||
|
||||
#删除记账日期
|
||||
def deleteDate(self):
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/detail/accounttransfers/div/div[2]/div/form/div[1]/p-calendar/span/span[1]').click()
|
||||
time.sleep(1)
|
|
@ -1,59 +0,0 @@
|
|||
import unittest
|
||||
import sys
|
||||
import os
|
||||
from selenium import webdriver
|
||||
import time
|
||||
from HTMLTestRunner import HTMLTestRunner
|
||||
sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/' + '../../'))
|
||||
from test_case.login.login_page import LoginPage
|
||||
from transaction_page import TransactionPage
|
||||
from test_data.record_outcome_data import *
|
||||
|
||||
|
||||
#前置条件:新账套
|
||||
class TransactionVoucherSpec(unittest.TestCase):
|
||||
''' 记支出测试 '''
|
||||
|
||||
def setUp(self):
|
||||
self.driver = webdriver.Chrome()
|
||||
self.driver.maximize_window()
|
||||
self.baseUrl = 'http://guanplus-app-accountingfirm-web-test.cn-north-1.eb.amazonaws.com.cn'
|
||||
login_page = LoginPage(self.baseUrl, self.driver)
|
||||
login_page.login('18514509382', 'qq123456')
|
||||
transaction_page = TransactionPage(self.driver,'outcome')
|
||||
transaction_page.goToCompany('2206一般纳税人')
|
||||
transaction_page.goToTransactionModule(self.baseUrl)
|
||||
transaction_page.goToTransactionPage('记支出')
|
||||
|
||||
def test1(self):
|
||||
'''记支出-生成凭证测试'''
|
||||
|
||||
n = 0
|
||||
m = 0
|
||||
transaction = ['1','现金','内部代表']
|
||||
transaction_page = TransactionPage(self.driver,'outcome')
|
||||
for outcome,vocherFirst in zip(recordOutcomeData,outcomeVoucherFirst):
|
||||
n = n + 1
|
||||
m = m + 1
|
||||
transaction_page.recordTransaction(transaction,outcome)
|
||||
transaction_page.goToVoucherPage(self.baseUrl)
|
||||
if m >= 11:
|
||||
self.driver.find_element_by_xpath('//*[@id="body"]/finance/div/voucher/div[1]/div[3]/div[2]/div/pagination/ul/li[4]/a').click()
|
||||
time.sleep(3)
|
||||
voucherFirstXpath = '//*[@id="body"]/finance/div/voucher/div[1]/div[3]/div[1]/div/table/tbody[' + str(n) + ']/tr[1]/td[4]'
|
||||
self.assertEqual(vocherFirst[0],self.driver.find_element_by_xpath(voucherFirstXpath).text)
|
||||
transaction_page.goToTransactionModule(self.baseUrl)
|
||||
transaction_page.goToTransactionPage('记支出')
|
||||
if 10 == n:
|
||||
n = 0
|
||||
|
||||
transaction_page.goToTransactionModule(self.baseUrl)
|
||||
self.assertEqual('支出合计: 4,359.00',self.driver.find_element_by_xpath('//*[@id="body"]/list/div/div[5]/div[2]/span').text)
|
||||
|
||||
def tearDown(self):
|
||||
self.driver.quit()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#收入类别
|
||||
incomeCategory = [
|
||||
IncomeCategoryData = [
|
||||
['1','利息收入'],
|
||||
['2','回收借出资金(收入)'],
|
||||
['2','收到临时借入款(收入)'],
|
||||
|
@ -10,20 +10,20 @@ incomeCategory = [
|
|||
['4','应收账款']
|
||||
]
|
||||
|
||||
#收入金额共计:1,025.00元 收入记录:8条
|
||||
recordIncomeData = [
|
||||
['1',['1','利息收入'],'111','利息收入'],
|
||||
['1',['2','回收借出资金(收入)'],'121','资金往来'],
|
||||
['1',['2','收到临时借入款(收入)'],'122','资金往来'],
|
||||
['1',['3','收回投资利息(收入)'],'131','投资&融资'],
|
||||
['1',['3','收回投资本金(收入)'],'132','投资&融资'],
|
||||
['1',['3','收到投资款'],'133','投资&融资'],
|
||||
['1',['3','银行贷款(收入)'],'134','投资&融资'],
|
||||
['1',['4','应收账款'],'141','应收账款']
|
||||
#记收入测试数据 金额共计测试数据:1,025.00元 收入记录:8条
|
||||
RecordIncomeData = [
|
||||
['1',['1','1'],'111','利息收入-利息收入'],
|
||||
['1',['2','1'],'121','资金往来-回收借出资金(收入)'],
|
||||
['1',['2','2'],'122','资金往来-收到临时借入款(收入)'],
|
||||
['1',['3','1'],'131','投资&融资-收回投资利息(收入)'],
|
||||
['1',['3','2'],'132','投资&融资-收回投资本金(收入)'],
|
||||
['1',['3','3'],'133','投资&融资-收到投资款'],
|
||||
['1',['3','4'],'134','投资&融资-银行贷款(收入)'],
|
||||
['1',['4','1'],'141','应收账款-应收账款']
|
||||
]
|
||||
|
||||
#所有收入类别对应的凭证分录
|
||||
outcomeVoucherFirst = [
|
||||
OutcomeVoucherFirstData = [
|
||||
['560302—手续费用'],
|
||||
['12210101—临时借出资金'],
|
||||
['22410101—临时借入款'],
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#支出类别
|
||||
outcomeCategory = [
|
||||
OutcomeCategoryData = [
|
||||
['1','银行费用'],
|
||||
['2','临时借出资金'],
|
||||
['2','归还临时借入'],
|
||||
|
@ -20,30 +20,30 @@ outcomeCategory = [
|
|||
['6','应付账款']
|
||||
]
|
||||
|
||||
#支出金额共计:4,359.00元 支出记录:18条
|
||||
recordOutcomeData = [
|
||||
['1',['1','银行费用'],'211','行政支出'],
|
||||
['1',['2','临时借出资金'],'221','资金往来'],
|
||||
['1',['2','归还临时借入'],'222','资金往来'],
|
||||
['1',['3','对外投资款'],'231','投资&融资'],
|
||||
['1',['3','归还银行贷款'],'232','投资&融资'],
|
||||
['1',['3','贷款利息'],'233','投资&融资'],
|
||||
['1',['4','应付工资奖金'],'241','应付职工薪酬'],
|
||||
['1',['4','应付社保费'],'242','应付职工薪酬'],
|
||||
['1',['4','应付公积金'],'243','应付职工薪酬'],
|
||||
['1',['4','应付劳务费'],'244','应付职工薪酬'],
|
||||
['1',['5','应交增值税'],'251','应交税费'],
|
||||
['1',['5','应交城建税'],'252','应交税费'],
|
||||
['1',['5','应交教育费附加'],'253','应交税费'],
|
||||
['1',['5','应交地方教育附加'],'254','应交税费'],
|
||||
['1',['5','应交个税'],'255','应交税费'],
|
||||
['1',['5','应交印花税'],'256','应交税费'],
|
||||
['1',['5','应交所得税'],'257','应交税费'],
|
||||
['1',['6','应付账款'],'261','应付账款']
|
||||
#记支出测试数据 金额共计:4,359.00元 支出记录:18条
|
||||
RecordOutcomeData = [
|
||||
['1',['1','1'],'211','行政支出-银行费用'],
|
||||
['1',['2','1'],'221','资金往来-临时借出资金'],
|
||||
['1',['2','2'],'222','资金往来-归还临时借入'],
|
||||
['1',['3','1'],'231','投资&融资-对外投资款'],
|
||||
['1',['3','2'],'232','投资&融资-归还银行贷款'],
|
||||
['1',['3','3'],'233','投资&融资-贷款利息'],
|
||||
['1',['4','1'],'241','应付职工薪酬-应付工资奖金'],
|
||||
['1',['4','2'],'242','应付职工薪酬-应付社保费'],
|
||||
['1',['4','3'],'243','应付职工薪酬-应付公积金'],
|
||||
['1',['4','4'],'244','应付职工薪酬-应付劳务费'],
|
||||
['1',['5','1'],'251','应交税费-应交增值税'],
|
||||
['1',['5','2'],'252','应交税费-应交城建税'],
|
||||
['1',['5','3'],'253','应交税费-应交教育费附加'],
|
||||
['1',['5','4'],'254','应交税费-应交地方教育附加'],
|
||||
['1',['5','5'],'255','应交税费-应交个税'],
|
||||
['1',['5','6'],'256','应交税费-应交印花税'],
|
||||
['1',['5','7'],'257','应交税费-应交所得税'],
|
||||
['1',['6','1'],'261','应付账款-应付账款']
|
||||
]
|
||||
|
||||
#所有支出类别对应的凭证分录
|
||||
outcomeVoucherFirst = [
|
||||
OutcomeVoucherFirstData = [
|
||||
['560302—手续费用'],
|
||||
['12210101—临时借出资金'],
|
||||
['22410101—临时借入款'],
|
||||
|
|
Loading…
Reference in New Issue