python jmeter接口自动化平台_jtl文件解析(jmeter+jenkins+python实现接口自动化)

网上搜索出jmeter压测结果解析成html文件的博客分享很多,但是并不能达到我自己的测试预期,因此采用Python解析jtl文件,解析结果直接展示用例通过和失败的数目,以及失败的用例标题,如下图所示:

710412-20190812153818260-1649171010.png

搭建步骤:

1. 安装tomcat

2. 安装jenkinsb并进行配置

其他:使用Python解析jtl文件

一、 安装tomcat

1.1 下载tomcat安装包

1.2 拷贝文件到Library目录下并解压,解压命令:tar -xzvf xxxxxxxx.tar.gz

1.3 进入解压后的目录/bin

1.4 启动服务,启动命令:star.sh

1.5 使用浏览器输入localhost+端口号,检查是否启动成功,启动成功如下图

710412-20190812154256157-786632643.png

如果没有启动成功,可以去logs下查看启动日志,查找失败原因

安装步骤粗略描述,详细步骤需要的话可以自己百度

二、安装jenkins

2.1 进入jenkins官网下载war包

710412-20190812154359478-1249751430.png

2.2 把war包放入tomcat的webapps目录下,重启tomcat

2.3 在浏览器输入localhost:8080/jenkins就可以访问jenkins了

这里粗略记录了jenkins的安装,具体怎么配置可自行百度

三、Python解析jtl文件

#把jmeter执行结果jtl文件中的所有httpSample存放到一个list中

defgetAllCase(file):

caselist=[]

f= open(file,encoding='utf-8')for line inf.readlines():if line.startswith('

line= line[12:-2]

caselist.append(line)#print(caselist)

returncaselist#处理allcase,取出s,lb和rc作为字典存到list中

defcaselDicList(caselist):

casediclist= [] #每条case是一个字典,把所有case存放到list里面

#print(caselist)

for case incaselist:#print(case) #一条case,包含sample中的所有

casedic={}

case_list= case.split(" ")for i incase_list:if i.__contains__("="):

key= i.split("=")[0]

casedic[key]= i.split("=")[1]

casediclist.append(endCase(casedic))#print(casediclist)

returncasediclist#把casedic做处理,只保留s,lb,rc

defendCase(casedic):

case_pre=casedic

case_aft={}for i incase_pre:if i == "s" or i == "lb" or i == "rc":

case_aft[i]=case_pre.get(i)returncase_aft#分析结果

defresult(casediclist):

pass_nums=0

fail_nums=0

fail_casediclist=[]for casedic incasediclist:if casedic.get("s").__contains__('true'):

pass_nums= pass_nums+1

else:

fail_nums= fail_nums+1

print("失败的用例标题为:"+casedic.get("lb"))

fail_casediclist.append(casedic)print("通过的用例数为:"+str(pass_nums))print("失败的用例数为:"+str(fail_nums))

caselist= getAllCase('mpp.jtl') #这里传入的是jtl的绝对路径

casediclist =caselDicList(caselist)

result(casediclist)

四、配置jenkins

4.1 新建一个自有项目的job

710412-20190812155008944-422166350.png

710412-20190812155048336-90963197.png

4.2 设置定定时运行,参考定时构建语法

定时器构建语法

* * * * *

星号中间用空格隔开

第一个*表示分钟,取值0~59

第二个*表示小时,取值0~23

第三个*表示一个月的第几天,取值1~31

第四个*表示第几月,取值1~12

第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

用法举例:

每30分钟构建一次:H代表形参

H/30 * * * *

每2个小时构建一次:

H H/2 * * *

每天的8点,12点,22点,一天构建3次: (多个时间点中间用逗号隔开)

0 8,12,22 * * *

每天早上8点到晚上6点每三小时检查一次

H 8-18/3 * * *

710412-20190812155140683-1463226708.png

4.3 执行shell脚本

分两步执行

第一步执行jmeter: jmeter -n -t xxxxx.jmx -l xxxxxxx.jtl

第二步执行Python解析jtl:python xxxx.py

710412-20190812155419989-2037190937.png

保存后,手动触发构建出现第一张图片的结果

其中py文件就是步骤三种的代码,解析jtl文件使用

!!!!补充!!!!

jmeter解压后默认运行的不是xml格式的jtl文件,所以需要修改配置,配置文件在bin目录下:jmeter.properties

710412-20190812204721377-1827981697.png

这样执行后的jtl文件内容是xml格式的,自己写的py只能解析xml格式的jtl文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值