当前位置: 首页 > wzjs >正文

长春的网站建设山东装饰公司网站建设公司

长春的网站建设,山东装饰公司网站建设公司,网页设计流行趋势,c2c模式的优势和劣势在代码执行的过程中不断的进行截图,把截图拼接成gif动态图,放在测试报告上 1、每条用例执行启动一个线程,这个线程会每隔0.3秒进行截图 项目下创建一个临时目录video用来存储所有截图以及gif动态图封装不断截图的方法,每隔0.3秒…

在代码执行的过程中不断的进行截图,把截图拼接成gif动态图,放在测试报告上

1、每条用例执行启动一个线程,这个线程会每隔0.3秒进行截图

  • 项目下创建一个临时目录video用来存储所有截图以及gif动态图
  • 封装不断截图的方法,每隔0.3秒进行截图
    # 封装一个普通函数,实现每隔0.3秒截图
    # dr代表核心操作对象
    # worker_id代表当前进程id,主要是用来在多进程并发时区分不同进程下的截图
    def shot(dr,worker_id):global shot_flagshot_flag = True # 全局变量,用来标识每条用例截图的开始和结束,用例结束后把shot_flag变为fasle# 每次截图开始前,清除当前进程下临时图片及gif动态图for img in os.listdir(f'{project_path}/video'):# img就是拿到的每个文件名称if img.startswith(worker_id):os.remove(f'{project_path}/video/{img}')i = 0while shot_flag:try:dr.get_screetshot_as_file(f'{project_path}/video/{worker_id}_{i}.png')time.sleep(0.3)i += 1except:return
  • 没条用例开始执行的时候开启一个线程,执行截图
    @pytest.fixture(scope='function',autouse=True)
    def case_setup(worker_id):# 创建线程# target表示该线程要执行的动作,只写函数名称就行# args指的是要执行这个函数时需要的入参thd = threading.Thread(target=shot,args=(DriverOperate.globalDriverOperate,worker_id))thd.start()
  • 将图片按照顺序拼接成gif动态图,把当前用例形成的gif动态图放在测试报告上
  • @pytest.fixture(scope='function',autouse=True)
    def case_teardown(worker_id,common_info):yieldglobal shot_flagshot_flag=False# 完成当前用例临时图片的拼接,形成gif动态图# 1.得到当前用例所有的临时图片名称img_list = []# 存储多个图片名称# 图片名称规则 gw0_0.png/gw0_1.png/gw0_2.pngfor img in os.listdir(f'{project_path}/video'):if img.startswith(worker_id) and img.endswith('.png'):img_list.append(img)# img_list = ['gw0_0.png','gw0_1.png','gw0_11.png','gw0_31.png']# 从目录得到的所有图片名称的排序上可能不对,拼接gif必须按照顺序来# 因此我们主要针对img_list中的图片名称进行排序img_list.sort(key=lambda name: int(name.split('_')[1][:-4]))# 完成图片拼接,需要用到一个图片操作的第三方库# pip  install pillow -i https://pypi.doubanio.com/simplefirst_img = Image.open(f'{project_path}/video/{img_list[0]}')eles_img = [] # 存储除了第一张图以外的其他图片的二进制对象for img in img_list[1:]:cur_img = Image.open(f'{project_path}/video/{img}')eles_img.append(cur_img)# 完成拼接first_img.save(f'{project_path}/video/{worker_id}_record.gif',append_images=eles_img,duration=300,# 每隔多长时间播放一张图片,单位是毫秒save_all=True,loop=1 # 表示循环播放次数)# 将生成的gif动态图放入到allure测试报告上with open(f'{project_path}/video/{worker_id}_record.gif',mode='rb') as f:allure.attach(f.read(),'执行回放',attachment_type=allure.attachment_type.GIF)# 每次用例执行结束后,清除当前进程下临时图片及gif动态图for img in os.listdir(f'{project_path}/video'):# img就是拿到的每个文件名称if img.startswith(worker_id):os.remove(f'{project_path}/video/{img}')


文章转载自:

http://IoKhI6AY.zqmdn.cn
http://6BGjTxGn.zqmdn.cn
http://UGxtduqy.zqmdn.cn
http://AKVCfE4U.zqmdn.cn
http://VrqkKRUM.zqmdn.cn
http://4FlUyMVQ.zqmdn.cn
http://sjqPB2wt.zqmdn.cn
http://1X1zwkRJ.zqmdn.cn
http://XA7iXbrB.zqmdn.cn
http://kT07PnGZ.zqmdn.cn
http://IYaZUTUS.zqmdn.cn
http://PEEKSUsm.zqmdn.cn
http://2qcFoNGQ.zqmdn.cn
http://RSoBhe5y.zqmdn.cn
http://wn81objC.zqmdn.cn
http://y7nsSA50.zqmdn.cn
http://hf2vJehv.zqmdn.cn
http://RT6GohBw.zqmdn.cn
http://2CT2iutT.zqmdn.cn
http://hhI9Zw7g.zqmdn.cn
http://SfMZ5DUO.zqmdn.cn
http://EDKVvykK.zqmdn.cn
http://NhubLYOe.zqmdn.cn
http://qOPf54zq.zqmdn.cn
http://bhWTOV9q.zqmdn.cn
http://nTYIQ77V.zqmdn.cn
http://yoOzGoyd.zqmdn.cn
http://5G3wovJq.zqmdn.cn
http://31psQgTk.zqmdn.cn
http://QrtRxV6D.zqmdn.cn
http://www.dtcms.com/wzjs/683189.html

相关文章:

  • 做公司做网站有用吗徐州关键字优化公司
  • 四会城乡建设局网站网站建设与推广策划书
  • 做招聘网站需要什么wordpress mysql 引擎
  • 网站系统介绍江苏住房城乡建设厅网站
  • 桂林北站到阳朔天津中小企业网站制作
  • 东高端莞商城网站建设网站建设模板怎么做
  • 云南做网站公司网站建设评选打分
  • 南阳网站改版搭建网站 网页
  • 网站主办单位负责人手机版网站模板 免费下载
  • 最简单的做网站工具怎么做微信网站吗
  • 网站设计哪家便宜wordpress中国能用吗
  • 中山教育平台网站建设中铁建设集团有限公司是央企吗
  • 企业在建设银行网站怎么发工资做选择网站
  • 做班级网站的实训报告开发微信微商城
  • 公司网站建设制作商网站建设医药
  • 页面设计培训学什么网站查询工具seo
  • 彩票游戏网站开发泰安手机网站建设公司
  • 沈阳企业网站排名优化网站设计外包合同
  • 2003总是说网站建设中支持支付宝登录的网站建设
  • 网站建设怎么打开简繁英3合1企业网站生成管理系统
  • 怎么做flash网站商城网站如何设计
  • 网站后台模板免费网络营销推广方法范文
  • 网站搭建东莞沈阳seo按天计费
  • 个人网站制作的主要内容运行wordpress环境
  • jsp网站开发教学视频教程用vps安装Wordpress
  • 免费网站后台管理系统htmlwordpress外链转內链
  • 手机壳图案设计网站网站流量利用
  • .net 网站地图scratch
  • 班级手机网站墨刀怎样做暖色调网站欣赏
  • 静态网站制作价格敬请期待前一句