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

兴仁市建设局网站的建站网站

兴仁市建设局网站,的建站网站,建设设计网站公司,怎样做好企业文化建设本章介绍使用DjCelery即DjangoCelery框架开发定时任务功能#xff0c;在Autotestplat平台上实现单一接口自动化测试脚本、业务场景接口自动化测试脚本、App自动化测试脚本、Web自动化测试脚本等任务的定时执行、调度、管理等#xff0c;从而取代Jenkins上的定时执行脚本和发送… 本章介绍使用DjCelery即DjangoCelery框架开发定时任务功能在Autotestplat平台上实现单一接口自动化测试脚本、业务场景接口自动化测试脚本、App自动化测试脚本、Web自动化测试脚本等任务的定时执行、调度、管理等从而取代Jenkins上的定时执行脚本和发送邮件等功能。** 自动化测试逻辑流程图11.1所示。 11.1 环境搭建 1安装 步骤1 安装Celery。pyramid_celery-3.0.0 配置https://pypi.python.org/pypi/pyramid_celery/。 步骤2 安装django-clery。django-celery-3.2.2 配置https://pypi.python.org/pypi/django- celery。 INSTALLED_APPS [] 加入2 djcelery, 运行 Python manage.py migrate 步骤 3 安装celery-with-redis-3.0 地址为https://pypi.python.org/pypi/celery-with-redis/。 步骤 4 安装django-clery-beat。django-celery-beat-1.1.0 https://pypi.python.org/pypi/ django_celery_beat。 步骤5 下载Redis-x64-3.2.100 Redis-x64-3.2.100.zip github.com/MicrosoftAr… 2配置 步骤1 在Settings.py中增加如下内容。 加入1 import djcelery djcelery.setup_loader() #加载djcelery 加入2: #数据库调度 CELERYBEAT_SCHEDULER djcelery.schedulers.DatabaseScheduler 加入3: BROKER_URL redis://127.0.0.1:6379/0 BROKER_TRANSPORT redis 步骤2 在应用Apitest目录下新建celery.py文件1加入如下内容。 from future import absolute_import import os import django from celery import Celery from django.conf import settings os.environ.setdefault(DJANGO_SETTINGS_MODULE,autotest.settings) django.setup() app Celery(autotest) app.config_from_object(django.conf:settings) app.autodiscover_tasks(lambda:settings.INSTALLED_APPS) 步骤3 新建tasks.py文件加入如下内容。 --coding:utf-8 -- importrequests, time, sys, re importurllib, zlib#, importpymysql importunittest from traceimport CoverageResults importjson fromidlelib.rpc import response_queue fromapitest.celery import app from timeimport sleep app.task def hello_world(): print(已运行) 步骤4 启动服务python manage.py runserver。 步骤5 解压缩后运行CMD切换到相应目录输入启动Redis指令redis-server redis. windows.conf成功后出现如图11.2所示界面。 ▲图11.2 步骤6 启动指令python manage.py celery worker -l info。 步骤7 启动指令python manage.py celery beat。 11.2 前端功能实现 1功能描述 完成实现单一接口测试用例、业务场景接口API测试用例、AppUI测试用例、WebUI测试用例的自动化定时任务。 2程序清单 在autotest\apitest\templates目录下新建periodic_task.html文件加入如下内容。 html head {% load bootstrap4 %} {% bootstrap_css %} {% bootstrap_javascript %} title产品自动化测试平台/title link relstylesheettypetext/css href/static/admin/css/forms.css / script typetext/javascriptsrc/admin/jsi18n//script script typetext/javascriptsrc/static/admin/js/vendor/jquery/jquery.js/script script typetext/javascriptsrc/static/admin/js/jquery.init.js/script script typetext/javascriptsrc/static/admin/js/core.js/script script typetext/javascriptsrc/static/admin/js/admin/RelatedObjectLookups.js/script script typetext/javascriptsrc/static/admin/js/actions.js/script script typetext/javascriptsrc/static/admin/js/urlify.js/script script typetext/javascriptsrc/static/admin/js/prepopulate.js/script script typetext/javascriptsrc/static/admin/js/vendor/xregexp/xregexp.js/script meta nameviewportcontentuser-scalableno, widthdevice-width, initial-scale1.0,maximum-scale1.0 link relstylesheettypetext/css href/static/admin/css/responsive.css/ meta namerobotscontentNONE,NOARCHIVE / /head body roledocument !-- 导航栏-- nav classnavbar navbar-expand-smbg-dark navbar-dark fixed-top div ahref#nbsp;/a ul /ul ul liastylecolor:white href#/a/li liastylecolor:white href/logout//a/li /ul /div /nav !-- 搜索栏-- divstylepadding-top: 70px; formmethodget action/tasksearch/ {% csrf_token %} input typesearchnametask placeholder名称 required button typesubmit搜索/button !-- 增加定时任务-- div stylefloat:right;width:73% select namePeriodicTaskidPeriodicTask option value selected----定时任务----/option /select a idchange_id_PeriodicTaskdata-href-template/admin/djcelery/periodictask/fk/change/?_to_fieldidamp;_popup1title更改选中的定时任务 imgsrc/static/admin/img/icon-changelink.svg alt修改/ /a a stylecolor:light blue idadd_id_PeriodicTask href/admin/djcelery/periodictask/add/?_to_fieldidamp;_popup1title增加另一个测试用例 imgsrc/static/admin/img/icon-addlink.svg alt增加/增加 /a /form /div !-- 任务计划列表-- divstylepadding-top: 20px; div table classtable table-striped thead tr thID/thth任务名称/thth任务模块/thth时间计划/thth修改时间/thth开启/thth立即/thth编辑/thth删除/th /tr /thead tbody {% for task in tasks %}{% for periodic inperiodics %} tr {% if task.interval_id ! null andtask.interval_id periodic.id %} td{{ task.id }}/td td{{ task.name }}/td td{{ task.task }}/td tda stylecolor:green每{{ periodic.period }} {{ periodic.every}}次/a/td td{{ task.date_changed }}/td td{{ task.enabled }}/td td{% if task.id 1 %} a href../task_apistargetmainFrame运行/a {% elif task.id 2 %} a href../task_apitesttargetmainFrame运行/a {% else %} {% endif %} /td tda stylecolor:light blueclassrelated-widget-wrapper-link add-relatedidadd_id_Apitest href../admin/djcelery/periodictask/{{task.id }}/change/?_to_fieldid_popup1imgsrc/static/admin/img/icon-changelink.svg//a/td tda stylecolor:light blueclassrelated-widget-wrapper-link add-related idadd_id_Apitesthref../admin/djcelery/periodictask/{{ task.id}}/delete/?_to_fieldid_popup1imgsrc/static/admin/img/icon-deletelink.svg//a/td {% else %} {% endif %} {% for crontab in crontabs %} {% if task.crontab_id ! null and task.crontab_id crontab.id and task.interval_id 1 %} td{{ task.id }}/td td{{ task.name }}/td td{{ task.task }}/td tda stylecolor:green{{crontab.month_of_year }}年{{crontab.day_of_month }}月{{crontab.day_of_week }}日{{crontab.hour }}时{{ crontab.minute}}分/a/td td{{ task.date_changed }}/td td{{ task.enabled }}/td tda href../task_apistargetmainFrame运行/a/td tda stylecolor:light blueclassrelated-widget-wrapper-link add-relatedidadd_id_Apitest href../admin/djcelery/periodictask/{{task.id }}/change/?_to_fieldid_popup1imgsrc/static/admin/img/icon-changelink.svg//a/td tda stylecolor:light blueclassrelated-widget-wrapper-link add-relatedidadd_id_Apitest href../admin/djcelery/periodictask/{{task.id }}/delete/?_to_fieldid_popup1imgsrc/static/admin/img/icon-deletelink.svg//a/td {% else %} {% endif %} {% endfor %}{% endfor %}{% endfor %} /tbody /table /div /div span styleposition:absolute;right:100px; bottom:30px; {# 把翻页功能固定显示在右下角#} div styleposition:absolute; right:100px; width:100px; trth总数/thtd{{ taskcounts }}/td/tr {# 前端读取定义的变量#} /div div lt;ulclasspagination idpagergt;{#上一页链接开始#}{%if tasks.has_previous %}{# 如果有上一页则正常显示上一页链接#}lt;ligt;lt;ahref/periodic_task/?page{{ tasks.previous_page_number }}gt;上一页lt;/agt;lt;/ligt; {# 上一页标签 #}{%else %}lt;li classprevious disabledgt;lt;ahref#gt;上一页lt;/agt;lt;/ligt;{# 如果当前不存在上一页则上一页的链接不可单击#}{%endif %}{# 上一页链接开始#}{%for num in tasks.paginator.page_range %}{% if num currentPage %}lt;ligt;lt;a href/periodic_task/?page{{ num }}gt;{{ num}}lt;/agt;lt;/ligt; {#显示当前页数链接#}{% else %}lt;liclassitemgt;lt;a href/periodic_task/?page{{ num}}gt;{{ num }}lt;/agt;lt;/ligt;{% endif %}{% endfor %}{# 下一页链接开始#}{% if tasks.has_next %} {# 如果有下一页则正常显示下一页链接#}lt;liclassnextgt;lt;a href/periodic_task/?page{{tasks.next_page_number }}gt;下一页lt;/agt;lt;/ligt;{% else %}lt;ligt;lt;a href#gt;下一页lt;/agt;lt;/ligt;{% endif %}{# 下一页链接结束#}lt;/ulgt;/div /body /html 功能描述实现自动化测试任务调度执行包括单一接口、扫描、流程接口、业务场景、Web搜索、自动化平台测试开发、App登录CSDN定时任务注册定时任务执行等功能。 程序清单在apitest/views.py中加入如下内容。 from .tasks importhello_world from .tasks importtest_readSQLcase from djcelery.modelsimport PeriodicTask,CrontabSchedule,IntervalSchedule 任务计划 login_required defperiodic_task(request): username request.session.get(user, )task_list PeriodicTask.objects.all()task_count PeriodicTask.objects.all().count() #统计数periodic_list IntervalSchedule.objects.all() # 周期任务如每隔1小时执行1次crontab_list CrontabSchedule.objects.all() # 定时任务如某年某月某日的某时每# 天的某时paginator Paginator(task_list, 5) #生成paginator对象,设置每页显示5条记录page request.GET.get(page,1) #获取当前的页码数,默认为第1页currentPageint(page) #把获取的当前页码数转换成整数类型try:task_list paginator.page(page)#获取当前页码数的记录列表except PageNotAnInteger:task_list paginator.page(1)#如果输入的页数不是整数则显示第1页内容except EmptyPage:task_list paginator.page(paginator.num_pages)#如果输入的页数不在系统的页数中# 则显示最后一页内容return render(request,periodic_task.html, {user: username,tasks:task_list,taskcounts: task_count, periodics:periodic_list,crontabs: crontab_list })搜索功能 login_required deftasksearch(request): username request.session.get(user, )# 读取浏览器登录Sessionsearch_name request.GET.get(task, )task_list PeriodicTask.objects.filter(task__icontainssearch_name)periodic_list IntervalSchedule.objects.all() # 周期任务如每隔1小时执行1次crontab_list CrontabSchedule.objects.all() # 定时任务如某年某月某日的某时每# 天的某时return render(request,periodic_task.html,{user: username,tasks:task_list,periodics:periodic_list,crontabs: crontab_list })在autotest/urls.py中加入 path(periodic_task/,views.periodic_task), path(tasksearch/, views.tasksearch),在apitest/left.html中加入 tr td lt;ligt;lt;a href../periodic_tasktargetmainFramegt;lt;iclassglyphicon glyphicon-firegt;lt;/igt;任务计划 lt;/agt;lt;/ligt;lt;trgt;lt;tdgt;amp;nbsp;lt;/tdgt;lt;/trgt; 查看前端页面效果如图11.3所示。 ▲图11.3 行动吧在路上总比一直观望的要好未来的你肯定会感 谢现在拼搏的自己如果想学习提升找不到资料没人答疑解惑时请及时加入扣群 320231853里面有各种软件测试开发资料和技术可以一起交流学习哦。 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
http://www.zqtcl.cn/news/881280/

相关文章:

  • 返利网站怎么做手机网页前端开发
  • 做家教去什么网站人际网络网络营销是什么
  • 潮州外贸网站建设网站qq在线状态
  • 旅游网站开发背景及意义湖南城市建设网站
  • 西安网站开发托管代运营wordpress给外部链接加上跳转
  • 网站设计深圳企业为什么做网站素材
  • 网站顶部地图代码怎么做的家居装修
  • 网站后台不能修改网站哪家公司做的
  • 360网站建设官网致远oa办公系统官网
  • 南宁 做网站网站建立计划书
  • 兰亭集势网站模板宿迁房产
  • 网站建设开源苏州做网站优化哪家好
  • 自己的电脑做网站空间视屏互联网站备案管理工作方案 工信部
  • 移动网站设计尺寸在什么网站做外贸
  • 中外网站建设区别绵阳市城市建设档案馆网站
  • php电子商务网站源码凉山彝族自治州网站建站
  • 网站建设当前位置图标移动网站登录入口
  • 个人网站备案 淘宝客wordpress 面包屑导航修改
  • 网站建设 总体思路企业网站建设费是无形资产吗
  • 专业外贸网站开发上海外包公司网站建设
  • iis网站伪静态为什么要网站备案
  • 什么是网站东莞常平律师事务所
  • 网站落地页制作最简单的网站
  • 长兴县建设管理网站抖音小程序注册
  • 做网站容易挣钱吗厦门网页制作厦门小程序app
  • 大型网站开发前端准备北京网站建设V芯ee8888e
  • 关于做营销型网站的建议网页小游戏无需登录
  • 网站短期培训能学什么高校网站建设评比标准
  • 做外贸什么网站比较好做dede鲜花网站模板下载
  • 网站广告推广怎么做网站怎么优化关键词排名