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

自适应企业网站结构优化设计

自适应企业网站,结构优化设计,兰州网站建设q.479185700棒,软文广告经典案例200字汽车软件开发自动化测试攻略 随着软件开发在造车行业中占有越来越重要的地位#xff0c;敏捷开发的思想在造车领域中也逐渐地被重视起来#xff0c;随之而来的是整车厂对自动化测试需求越来越强烈。本文结合北汇在自动化测试方面的丰富经验#xff0c;简单介绍一下实施自动… 汽车软件开发自动化测试攻略 随着软件开发在造车行业中占有越来越重要的地位敏捷开发的思想在造车领域中也逐渐地被重视起来随之而来的是整车厂对自动化测试需求越来越强烈。本文结合北汇在自动化测试方面的丰富经验简单介绍一下实施自动化测试可能需要具备的技能及具体实践流程。 自动化测试城门-Python 要实现完全的自动化测试我们首先要做的是先实现半自动化测试即编写自动化测试脚本。俗话说 Life is shortI use PythonPython作为一种简单易上手的高级编程语言凭借其“无所不包”的库成为测试脚本开发的不二之选。这里简单介绍一下测试脚本开发常用的一些Python标准库。 城门士卒-os库 在编写测试脚本时不可避免地会遇到对文件路径的获取及编辑os库里的path函数 可以方便地实现这些操作如绝对路径获取os.path.abspath()、路径拼接os.path.join()、路径存在判断os.path.exist()等如果你需要在Python中运行测试工具提供的命令那么os库的system函数或popen函数 可以让你方便地调用cmd(Windows)或shell(Linux)。 · 城门士卒-sys库 如果你所编写的测试脚本有跨平台运行的需求那么你可以通过sys库的platform函数 获取脚本的运行环境。根据运行环境的不同编写不同的批处理命令sys库中的argv函数还可以为你的测试脚本提供简单的命令行接口当你的脚本需要接收外部传递的参数时你可以通过sys.argv[]方便地获取。而如果你需要编写更复杂更友好的命令行接口你需要使用Python的另外一个标准库argparse 来实现。 · 城门队长-re库 正则表达式是编写测试脚本的必备技能因为有时我们会遇到复杂的文本处理如在工程文件中查找需要修改的配置并将其修改为我们所需要的内容。此时一般的查找替换函数 就很难实现这个功能我们只能借助强大的re库 正则表达式来解决这个棘手的问题。re库提供的函数有 re.compile():编译 正则表达式 生成一个 Pattern 对象; re.findall():搜索所有满足条件的字符串; re.match():从第一个字符开始匹配模式; re.search():搜索第一个满足条件的字符串查找到第一个停止; re.sub():替换满足条件的字符串。 在使用re模块时我们一般先用re.compile()将正则表达式编译生成为一个Pattern对象然后再基于这个对象进行findall、match等操作这样既可以提高代码的可读性也可以提高代码的运行效率。 使用正则表达式进行查找替换是很方便的但是在很多时候我们需要在匹配的字符串前后添加内容并且保留匹配的内容这时普通的查找替换是难以实现的。 现在我也找了很多测试的朋友做了一个分享技术的交流群共享了很多我们收集的技术文档和视频教程。 如果你不想再体验自学时找不到资源没人解答问题坚持几天便放弃的感受 可以加入我们一起交流。而且还有很多在自动化性能安全测试开发等等方面有一定建树的技术大牛 分享他们的经验还会分享很多直播讲座和技术沙龙 可以免费学习划重点开源的 qq群号691998057【暗号csdn999】 如希望将hour: minute格式后添加:00形成hour: minute: seconds这种格式。此时可以采用如下方式来实现 查找的正则表达式 (\d:\d) 替换为 \1\:00 这里我们在替换的字符中使用\1来引用正则表达式中第一个分组匹配到的内容如果正则表达式中有多个分组可以依次使用\2\3等进行引用可以使用\0来引用整个正则表达式的内容。 · 小结 在掌握了Python基础语法和这三个标准库后自动化测试的大门就为我们敞开了。但是想要编写一个可以驱动测试工具进行测试的脚本我们还需要了解测试工具在headless模式【1】下的接口情况如果工具提供的接口丰富可以实现在headless模式下对测试工程进行配置和执行等操作那么我们的测试脚本 开发工作将会顺利地进行。 但是如果工具提供的headless模式接口有限无法满足测试脚本的需求那么进入自动化测试大门后等待我们的就是另一个棘手的问题如何对工程文件进行解析与修改。考虑到大部分的工程文件都是XML格式的因此后续我们就简单介绍一下如何通过Python解析和修改XML文件。 【1】这里的headless模式是指在不使用工具GUI的情况下以纯命令行的方式进行工具使用的模式。 自动化测试瓮城——XML文件 · 瓮城守备——XML解析 在Python的标准库中有专门处理XML文件的库无需安装第三方库就可以使用Python进行XML文件的解析但是要想准确地从XML文件中解析出想要的信息我们首先需要简单了解一下XML的文件结构。如下是一个简单的XML文档。 bookstore book categoryCOOKINGtitle langenEveryday Italian/title authorGiada De Laurentiis/author year2005/year price30.00/price /book book categoryCHILDRENtitle lang enHarry Potter/title authorJ K. Rowling/author year2005/year price29.99/price /book book categoryWEBtitle lang enLearning XML/title authorErik T. Ray/author year2003/year price39.95/price /book /bookstore 其中Harry Potter元素的结构如下图所示 图片来源于https://www.w3school.com.cn/xml/xml_tree.asp 在该XML文本中根元素是 bookstore文档中的所有 book 元素都被包含在 bookstore 里。book 元素有 4 个子元素title、 author、year、price。每个子元素都包含一个文本内容但只有子元素title和元素book拥有属性。 我们在解析XML时一般需要获取的就是元素的属性值以及元素的文本内容。以下我们就简单介绍一下如何通过python获取元素的属性值及文本内容。 Python的XML库提供了一个通过标签名称获取元素的函数 getElementsByTagName()该函数返回的是一个包含元素对象的list通过调用元素对象的attributes方法我们就可以方便地获取元素的属性值。如我们可以使用如下命令获取XML文件中第一个标签为title的lang属性值 root.getElementsByTagName(title)[0].attributes.getNamedItem(lang).nodeValue 获取第一个标签为title的元素的文本信息的代码如下 root.getElementsByTagName(title)[0].firstChild.data · 瓮城参将 ——XML修改 XML元素的属性和文本内容修改很简单在上小节中获取对应的元素信息后直接对其进行赋值即可。但是修改后的信息保存在XML对象中。要完成对实际XML文件的修改我们还需要用XML对象中的内容覆盖原有的XML文件这一步存在很多棘手的问题。 在XML文件中为了避免元素文本内容中存在的特殊字符引起解析器错误在文本内容中引入实体引用来替代可能导致错误的字符如回车#xA;、双引号quot;、单引号apos;。如果使用python的xml.dom.minidom库解析并使用writexml输出XML文件该库会将这些实体引用转义为其实际字符进行保存。如果不对XML对象中的内容进行处理导出的XML文件将会存在很多错误。 为了避免这个情况的出现我们需要使用之前小节介绍的正则表达式将这些字符再替换为其实体引用。这个过程需要我们能熟练使用正则表达式进行文本查找与替换。 除了XML文件中的实体引用外如果XML文件中存在中文字符那么还有一个需要注意的事情不要使用with open as 的方式读写XML文件要使用open指定文件 的编码为 utf-8 的方式对XML文件进行写入。如下所示 f open(self.JenkinsJobXMLPath, w, encodingutf-8) dom.writexml(f, indent, addindent\t, newl, encodingutf-8) f.close() · 小结 上述两个问题是修改XML文件时普遍会遇到的问题。解决了这两个问题我们基本上就可以完美实现XML文件的修改了。此时我们就可以编写自动化程度更高的测试脚本然而我们依然无法实现完全的自动化测试因为我们仍然需要手动地去执行测试脚本。那么我们该如何实现测试脚本的自动执行呢这就需要我们打通自动化测试的最后一个关卡Jenkins。 自动化测试总兵——Jenkins Jenkins 是一个开源、免费的可扩展持续集成引擎 主要用于 持续、自动地构建/测试软件项目 监控一些定时执行的任务。 为了实现测试脚本的自动化运行我们需要配置Jenkins Job使Jenkins在设置的触发条件满足时自动搭建测试脚本的运行环境然后执行测试脚本最后将测试结果发送给相关人员。因此我们需要了解Jenkins的源码管理、构建触发器、构建及邮件通知等设置。 · 总兵的连招1——源码管理 Jenkins服务器最基本的作用是监视版本控制器当版本库 有新的更改时检出版本库中的文件或者你可以选择只是定期检出版本库中最新的文件。无论哪种方式Jenkins与版本控制软件 的集成是必不可少的。 Jenkins开箱即用 式支持Git、CVS和SVN还通过插件与大量其他版本控制工具进行集成如ClearCase、Perforce、PVCS等等。 不同的版本控制软件在Jenkins端的需要的配置并不相同有的甚至差异很大。但是只要你熟悉你所使用的版本控制软件那么在Jenkins端就可以很容易地对版本库进行配置。 以SVN为例为了从SVN仓库中获取源码我们需要提供相应SVN版本库的URL在完成URL输入后Jenkins会检查URL的有效性如果所提供的URL要求身份认证Jenkins将会自动提示选择相应的凭据以验证账号信息如下图所示。 默认情况下Jenkins会将给定的代码库中的文件检出到Jenkins Job的Workspace中。如果你需要将代码库检出到指定的目录中你可以在Local module directory 中输入你想要的目录名或相对Workspace的路径。 如果你需要从多个SVN版本库中获取文件可以点击“Add module ...”按钮来添加别的版本库。 · 总兵的连招2 ——构建触发器 常用的构建触发器有周期性构建 和SCM轮询构建两者都是使用相同corn风格语法进行设置如下图所示。 我们只需要了解corn风格 的语法就可以方便地进行构建触发器的设置。corn风格的语法包含五个由空格分隔的字段 MINUTE HOUR DOM MONTH DOW 每个字段使用下面的值 MINUTE 小时内的分钟数(0-59) HOUR 一天的小时数(0-23) DOM 本月的天数(1-31) MONTH 月份(1-12) DOW 本周的一天(0-7)其中0和7都是星期日 要为一个字段指定多个值可以使用以下操作符 “*”代表一个字段的所有可能的值。如“* * * * *”表示周期为一分钟 使用“M-N”定义范围。如在DOW中“1-5”表示周一到周五 使用“/”定义范围间隔时间。如MINUTE字段“*/5”表示每5分钟 逗号分隔的列表表示有效值。如MINUTE字段“1545”表示在每小时的第15和第45分钟运行 通常我们只需要在这个字段中写一行但是对于更复杂的调度配置我们可能需要写多行。 · 总兵的连招3 ——构建 在完成了之前的配置后Jenkins应该知道在何时从何处获取测试工程及源码。现在我们需要做的事情是告诉Jenkins在获取测试工程和源码后该如何做。一般情况下我们会将之前编写的测试脚本放在测试工程的版本库中或者从专门的测试脚本库中检出到Jenkins Job的Workspace中因此我们在这里只需要执行编写好的测试脚本即可。 执行脚本的方式可以根据具体脚本的运行环境选择执行Shell或Windows批处理命令。因此我们需要简单地了解Shell或Windows的常用批处理命令。为了避免编写复杂的批处理命令我们应尽量把工作放在测试脚本中完成。本文以如下图所示的简单的Windows批处理为例简单介绍一下构建步骤的编写。 在上图中有两行命令 第一行的作用是将目录由初始的Workspace目录切换到Workspace下的Script目录 第二行的作用是运行Script目录中的测试脚本Script.py并为该脚本传递一个参数该参数为Jenkins的环境变量JOB_NAME即当前Jenkins Job的名称。 这样就完成了对测试脚本的调用。 · 总兵的连招4——邮件通知 自动化测试的一个重要环节就是将测试结果通知到相关人员如开发\测试人员或项目管理人员等。Jenkins对电子邮件提供了开箱即用的支持我们可以在构建后处理中勾选E-mail Notification如下图所示。然后输入需要通知的人员邮箱即可使Jenkins在构建完成后向指定的人员发送一封友好的电子邮件。 如果你想对邮件内容进行高度定制那么E-mail Notification就无法满足需求我们需要安装可编辑的电子邮件插件Editable Email Notification来实现电子邮件的定制化工作。 在Editable Email Notification中我们可以用HTML编写电子邮件的内容并引用Jenkins的环境变量这样我们就可以在邮件中描述当前Jenkins Job的测试执行概况让收件人快速地了解当前的测试状态。但是这要求我们对HTML和Jenkins环境变量都有比较深的了解。 有些情况下我们需要在邮件中执行一些数据提取等复杂工作比如将控制台输出中的一些数据在邮件中进行展示这时我们需要借助email-ext-plugin插件提供的Groovy接口用Groovy编写邮件内容。 总之Jenkins的邮件通知功能非常强大我们可以在自动化测试的工作中不断进行探索。 小结 本节简单介绍了Jenkins的传统表单类型的Freestyle Job然而目前Jenkins的发展方向是 Pipeline JobJenkins将Pipeline作为优先开发项目。这就意味着Pipeline在应用程序中是作为实体被设计和支持的而不是通过在Jenkins中连接一堆任务而形成流水线。Pipeline类型的Job可以通过编程实现可以实现更复杂构建逻辑和工作流更重要的是在Pipeline中有专门的用于流水线编程的结构化DSL其可以在工作空间中轻松地实现文件共享功能。同时Pipeline具有全新的Jenkins可视化界面 ——Blue Ocean其为Pipeline的每个阶段添加了图形化的展示如下图所示。 因此我们在熟悉了表单类型的 Freestyle Job后可以尝试将其转换为Pipeline的Job当然目前并非所有的Jenkins插件都支持Pipeline有些老旧的插件还无法支持Pipeline我们需要根据实际的工作情况进行Jenkins工程类型的选择。 end今天的分享就到处结束了底赞关注不迷路
http://www.zqtcl.cn/news/955815/

相关文章:

  • 做网站建设要什么证视频付费网站建设
  • html网站建设实例代码软件下载app排行榜
  • 高端个人网站网站建设密码
  • 全网seo秦皇岛市做网站优化
  • 简述站点推广有哪些方式大兴做网站公司
  • 网站关键词密度查询太仓网站设计早晨设计
  • 厦门市同安区建设局官方网站永嘉网站建设
  • 工程师网站建设网页设计与制作基础教程答案
  • php 开发手机网站建设互动平台抽手机
  • 网站 被降权网页平面设计要学什么
  • 团购网站短信平台中国建设银行网站客户注册码
  • 编辑网站的软件手机软件wordpress幻灯片源码
  • 网站开发比较厉害推荐一本学做网站的书
  • 贵州网站外包wordpress在后台修改绑定域名
  • 搜狗提交网站收录入口wordpress centos查看目录
  • 电力建设科学技术进步申报网站买机票便宜网站建设
  • 黄冈网站建设优化排名网站开发运作
  • 怎么把网站链接做二维码app跟网站的区别是什么
  • 南通住房和城乡建设局网站wordpress exif
  • 在谷歌上做网站广告要多少钱萍乡网站开发
  • 资源站 wordpress仙游县住房和城乡建设局网站
  • 锦州做网站公司北京互联网公司名单
  • 免费英文 网站模板公司做网站多少钱乐器
  • 软文营销推广成都seo正规优化
  • soho建设外贸网站怎样取消网站备案
  • 建设部网站实名制举报wordpress.org去掉
  • 网站地址ip域名查询公司网站建设安全的风险
  • 盐城建设厅网站设计备案网站创建服务
  • wp如何做双语网站个人网站首页内容
  • 网络推广网站排行榜百度怎么搜索网址打开网页