日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

當(dāng)前,我國(guó)金融體系內(nèi)交易量持續(xù)增長(zhǎng),業(yè)務(wù)場(chǎng)景日趨復(fù)雜。系統(tǒng)交易量的增加,臨時(shí)產(chǎn)生的集中業(yè)務(wù)需求,都會(huì)使服務(wù)器面臨考驗(yàn),因此,需要對(duì)系統(tǒng)進(jìn)行性能測(cè)試。

在金融系統(tǒng)中,報(bào)文處理是必不可少的。各大金融機(jī)構(gòu)間通過(guò)報(bào)文的交換進(jìn)行信息流的傳遞,從而最終實(shí)現(xiàn)資金的跨機(jī)構(gòu)流轉(zhuǎn)。在對(duì)金融系統(tǒng)的性能測(cè)試中,自然也少不了與報(bào)文打交道,而性能測(cè)試往往伴隨著大量數(shù)據(jù)準(zhǔn)備。那么,如何高效地生成大量報(bào)文呢?

助力性能測(cè)試:如何通過(guò)Python批量生成測(cè)試報(bào)文?

 

試想這樣一種場(chǎng)景:某金融機(jī)構(gòu)需在特定時(shí)間內(nèi)進(jìn)行一波資金劃轉(zhuǎn),該業(yè)務(wù)是新增交易,且交易數(shù)量較大,需要準(zhǔn)備大量報(bào)文對(duì)服務(wù)器進(jìn)行性能測(cè)試。數(shù)據(jù)的準(zhǔn)備有很多方法,其中Python/ target=_blank class=infotextkey>Python由于易上手且兼具靈活性而逐漸受到測(cè)試工程師們的青睞。今天,我們就來(lái)介紹一下如何通過(guò)Python批量生成測(cè)試報(bào)文。

1.批量報(bào)文準(zhǔn)備

上述例子中提到的報(bào)文一般可分為單交易報(bào)文和批量交易報(bào)文兩種。單交易報(bào)文的獲取是非常容易的,而批量交易報(bào)文則可通過(guò)單交易報(bào)文生成,Python中的pyperclip模塊為實(shí)現(xiàn)這一功能提供了便捷的支持。pyperclip中的copy和paste方法分別可實(shí)現(xiàn)向剪切板發(fā)送文本和從剪切板讀取文本。下面的代碼實(shí)現(xiàn)了讀取單交易信息,并生成指定數(shù)量批量交易的功能:

import pyperclip

# 交易數(shù)量

dealNum = 2

# 讀取單交易信息并復(fù)制到剪貼板

with open(r'test.txt', encoding='utf-8') as f:

txt = f.read()

pyperclip.copy(txt)

# 生成批量交易

res = ''

dealInfo = pyperclip.paste()

for i in range(dealNum):

res = '{}n{}'.format(res, dealInfo)

print(res)

當(dāng)交易數(shù)量為2時(shí),生成報(bào)文示例如下:

<tag>測(cè)試報(bào)文</tag>

<tag>測(cè)試報(bào)文</tag>

2.交易號(hào)生成

在一筆交易中,往往包含標(biāo)志交易唯一性的定長(zhǎng)交易號(hào)。

從上一步中,我們得到了擁有相同信息的若干筆交易,但由于交易號(hào)相同,直接發(fā)送上述交易報(bào)文會(huì)因重復(fù)編號(hào)導(dǎo)致記賬失敗。我們很容易想到,可以通過(guò)random函數(shù)生成隨機(jī)數(shù)來(lái)模擬不同交易,但如何確保編號(hào)的唯一性呢?random模塊中包含一個(gè)名為sample的方法,通過(guò)它,可以生成不重復(fù)的隨機(jī)數(shù)。例如,通過(guò)以下代碼可得到5個(gè)不重復(fù)的8位隨機(jī)數(shù):

import random

# 隨機(jī)生成8位交易號(hào)

traNo = random.sample(range(10**7, 10**8), 5)

print(traNo)

返回生成的隨機(jī)數(shù)列表,如下:

[69244291, 71447069, 95104116, 91919619, 50861438]

3.交易號(hào)替換,目標(biāo)報(bào)文生成

在前面步驟均已完成的前提下,下一步就可以進(jìn)行編號(hào)的替換了。報(bào)文中的交易號(hào)一般形式為“<標(biāo)簽>編號(hào)</標(biāo)簽>”,對(duì)于此類數(shù)據(jù)的替換,正則表達(dá)式是非常有效的手段。Python中的re模塊可通過(guò)正則表達(dá)式進(jìn)行字符串的匹配,下面的代碼通過(guò)查找交易標(biāo)簽,對(duì)其中的交易編號(hào)進(jìn)行了替換:

import re

# file:待替換文件

# numberList:隨機(jī)交易號(hào)列表

def alter_file(file, numberList):

fileData = ''

i = 0

with open(file, 'r', encoding='utf-8') as f:

for line in f:

if '<tag>' in line:

newStr = '<tag>{}</tag>'.format(numberList[i])

i += 1

line = re.sub(r'<tag>d+</tag>', newStr, line)

fileData += line

with open('result.txt', 'w', encoding='utf-8') as f:

f.write(fileData)

  在以下示例中,原有的編號(hào)已被替換成為了不重復(fù)隨機(jī)數(shù)。

助力性能測(cè)試:如何通過(guò)Python批量生成測(cè)試報(bào)文?

 


助力性能測(cè)試:如何通過(guò)Python批量生成測(cè)試報(bào)文?

 

實(shí)際測(cè)試中,結(jié)合以上方法,即使上萬(wàn)條交易報(bào)文也能輕松準(zhǔn)備,為性能測(cè)試的開展提供了有力的支持。


如果你的也有很多問(wèn)題想要解決,你的測(cè)試職業(yè)規(guī)劃也需要一點(diǎn)光亮,你也想跟著大家一起分享探討,我給你推薦一個(gè)「Python自動(dòng)化測(cè)試學(xué)習(xí)交流群」你缺的知識(shí)這里有,你少的技能這里有,你要的大牛也在這里……

分享到:
標(biāo)簽:報(bào)文 測(cè)試
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定