jenkins管理的docker环境python脚本自动化测试调试

编程入门 行业动态 更新时间:2024-10-08 10:51:30

jenkins管理的docker环境python<a href=https://www.elefans.com/category/jswz/34/1771291.html style=脚本自动化测试调试"/>

jenkins管理的docker环境python脚本自动化测试调试

最近做的针对一个做预热的python脚本。用Java做了一个调用脚本的自动化sanity测试(cucumber)并根据脚本执行后的结果eixtValue(null,0,1等),通过Assert断言运行结果符合预期。自动测试代码写好后,因该测试过程是由jenkins自动执行:从资源申请到环境准备,到build,service start,到API测试执行,最后的资源回收,整个过程都是自动执行,无法中途直接进入查询或手工执行测试,只能通过执行之后的日志去判断和分析。

脚本库是要运行在python3环境,并需安装标准库外的库包,

Java运行该脚本是通过

Processor proc= Runtime.getRuntime().exec('scl enable rh-python35 -- python3 /opt/xx/bin/xxx.py')

int result=proc.waitFor()

调用的python脚本文件,并读取waitFor()获取执行结果状况(若需要观察脚本运行日志,要对processor)。

该运行环境的配置文件是docker-compose.yaml,在其中的服务配置节中指向对应的Dockerfile文件(配置了指定linux镜像,必要的用户+Jenkins用户的创建的授权,jdk,python和额外需要的库包安装),

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙485187702,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

虽然有一个类似的对比测试环境,但经过对比测试脚本执行后的日志对比,发现两者的差异很大,实体的测试环境中的环境变量更多,默认的Python是2.7.5,都有一个在(/opt/rh/rh-python35)中的python3.5.1,可以通过 "scl enable python35 -- python3 XXX.py" 执行Python3类型的脚本,但没有安装必须的其他3个包(如urllib3和requests和functools),

但上机测试环境还另外装了一个python3.6.8, 这是jenkins环境没有安装的。

还有一点,虽然测试的结果是脚本执行结果(eixtValue)是1,即执行过程抛出异常,但该环境并没有在log中记录异常的内容,无法得知问题所在。而已有一个老的RPM包,虽不能完全通过测试,但也能够执行并输出log,于是对此RPM通过rpm2pcio命令(rpm -qpl *.rpm或rpm2cpio *.rpm | cpio -div)解压对比,用同样的代码重编译和安装,照样报错,并无log中输出。

中间用来确认环境的脚本语句:

import os
import sys
import pkg_resource import find_distributionsprint(os.environ)
print(os.environ['HOME'])
sys.getdefaultdencoding()path='/opt/rh/rh-python35/root/usr/lib/python3.5/site-packages'
res=find_distributions(path)
for item in res:print(item.project_name,item._version)

反复尝试无果后,决定另外写一个简化的脚本,从而在测试代码中指定新的简化脚本去Jenkin环境中执行,终于,抛出了运行过程中的异常信息,经查询和试验,确定是因Python运行的调用环境中,获取的服务返回的数据的编码不一致,导致解析异常,对症处理,成功完成。

Python脚本代码修改点:

import sysimport codecssys.stdout=codecs.getwariter('utf-8')(sys.stdout.detach())

心得:

1.确认环境,如Linux环境变量,Python版本,Python额外装的库包信息。

2.对比执行和分析,如对比两个包的代码,对比记录的发生差异的不同版本的代码和环境配置信息的不vianhau

可使用新的简化脚本替换执行并对比结果的差异,定位为题所在。

3.当问题暴露,则离解决问题就不远了。

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

8小时传疯!大厂面试真题全被大佬整理在这个小程序上了!【软件测试,建议收藏】

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础 

  全套资料获取方式:点击下方小卡片自行领取即可

更多推荐

jenkins管理的docker环境python脚本自动化测试调试

本文发布于:2023-11-16 20:44:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1633693.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:脚本   环境   测试   jenkins   docker

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!