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

网站搭建策略与方法有哪些方面移动建站优化

网站搭建策略与方法有哪些方面,移动建站优化,廊坊专业网站建设,厦门百度整站优化服务最近#xff0c;项目上出于系统性稳定性、减少测试工作量考虑#xff0c;打算在 Web 前端引入 BDD。由于上一个项目写了一定的 Cucumber 代码#xff08;BDD 测试框架之一#xff09;#xff0c;这个框架选型的责任便落到了我的肩膀上了。 在我们进行框架选型的时候#…最近项目上出于系统性稳定性、减少测试工作量考虑打算在 Web 前端引入 BDD。由于上一个项目写了一定的 Cucumber 代码BDD 测试框架之一这个框架选型的责任便落到了我的肩膀上了。 在我们进行框架选型的时候着重考虑了一个因素测试实现脚本是由开发人员编写的因此最好寻找 JavaScript 支持的框架。在搜索了一天后选择了三个框架 Cucumber、Robot、Gauge。以下是上述的三个框架入选的原因 Cucumber团队的开发人员有一些有相关的开发经验、支持 JavaScript。 Robot Framework测试人员接受过相关的培训、不支持 JavaScript。 Gauge可以生成更好的测试报告及自由的书写、支持 JavaScript。不过主要是我写腻了 Cucumber。 随后便使用三个不同的框架写了几个 UI 测试的 DEMO。在开始之前让我们了解什么是 BDD。 BDD Behavior Driven Development行为驱动开发是一种敏捷软件开发的技术它鼓励软件项目中的开发者、QA 和非技术人员或商业参与者之间的协作。 与一般的自动化测试如单元测试、服务测试、UI 测试不一样的是BDD 是由多方参与的测试开发方式。如在使用 Protractor 写 Angular 的 E2E 测试的时候所以的测试都是前端测试人员编写的。BDD 最重要的一个特性是由非开发人员编写测试用例而这些测试用例是使用自然语言编写的 DSL领域特定语言。 换多话来说业务人员、测试人员、客户等利益相关者以习惯的方式编写相关的测试用例再由开发人员去实现相关的测试。如下图所示 BDD 流程 由业务人员编写的测试用例将是使用如下的形式实现的 由业务人员编写的测试用例将是使用如下的形式实现的 当我在网站的首页 输入用户名 “demo” 输入密码 “mode” 提交登录信息 用户应该跳转到欢迎页 对于能支持中文的 BDD 框架来说这就是业务人员和测试人员等编写的用例他们能轻松地编写出这样的用例而开发人员便是去实现这一个又一个的 DSL 语句。 在我之前的一个项目里我们遇到了一个问题测试用例也是由开发人员编写的。这种做法不仅不能体现 BDD 的价值而且对于开发人员来说这是在糟蹋代码。如果完全是由开发人员编写的测试那么为什么我们需要写一个额外的 DSL 层呢 接下来让我们看看三个测试的一个简单对比表 BDD 框架对比 从某程程度上来看三个框架差不了多少每个框架也各自都有自己的问题。 1、Cucumber 的 Javascript 版本不支持 HTML 的报表生成。 2、Gauge 虽然比较适合我们的要求但是相关的中文资料比较少。 3、Robot 主要的问题是不支持 JavaScript以及要按 Robot 定义的方式来编写代码。 以下是三个框架的示例及详细的对比。 Cucumber.js Cucumber 是一个能够理解用普通语言 描述的测试用例的支持行为驱动开发BDD的自动化测试工具用Ruby编写支持Java和.Net等多种开发语言。 使用自然语言更易读支持表格参数支持多种格式的Reporthtml、junit etc.支持多种语言支持四种状态的测试步骤Passed、Failed、Skipped、Pending支持使用变形器消除重复一个商用的在线 Cucumber 系统Cucumber Pro DSL Code Examples 示例代码https://github.com/phodal/bdd-frameworks-compare/tree/master/cucumber # language: zh-CN 功能: 失败的登录场景大纲: 失败的登录假设 当我在网站的首页当 输入用户名 用户名当 输入密码 密码当 提交登录信息那么 页面应该返回 Error Page例子:|用户名 |密码 ||Jan1 |password||Jan2 |password|Cucumber 支持比较固定的 DSL 格式即三段式 Given-When-Then对应的中文便是假设-当-那么。作为一个历史悠久的框架它的中文资料相当的丰富只是在 JavaScript 方面有些不足不能生成对应的 HTML 报告。 其实现代码如下所示 Step Code Examples defineSupportCode(function({Given, When, Then}) {Given(当我在网站的首页, function() {return this.driver.get(http://0.0.0.0:7272/);});When(输入用户名 {string}, function (text) {return this.driver.findElement(By.id(username_field)).sendKeys(text)});When(输入密码 {string}, function (text) {return this.driver.findElement(By.id(password_field)).sendKeys(text)});When(提交登录信息, function () {return this.driver.findElement(By.id(login_button)).click()});Then(页面应该返回 {string}, function (string) {this.driver.getTitle().then(function(title) {expect(title).to.equal(string);});}); });从代码实现上来说也是固定的三段式。其底层依赖于 Selenium因此写法上与 Gauge 的区别并不大。 Robot Framework Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性支持关键字驱动可以同时测试多种类型的客户端或者接口可以进行分布式测试执行。 关键特性 使用关键字的机制更容易上手 提供了RIDE对于不熟悉编码的人来说比较友好 能够精细的控制关键字的scope Log 和 Report 非常好 使用变量文件的机制来描述不同的环境 丰富的关键字库 内置变量 DSL Code Examples 示例代码https://github.com/phodal/bdd-frameworks-compare/tree/master/robot *** Settings *** Documentation 登录测试 2 ... Suite Setup 打开浏览器到登录页1 Suite Teardown Close Browser Test Setup 转到登录页 Test Template 使用错误的失败凭据应该登录失败 Resource resource.robot*** Test Cases *** USER NAME PASSWORD 无效的用户名 invalid ${VALID PASSWORD} 无效的密码 ${VALID USER} invalid 无效的用户名和密码 invalid whatever*** Keywords *** 使用错误的失败凭据应该登录失败[Arguments] ${username} ${password}输入用户名 ${username}输入密码 ${password}提交登录信息登录应该不成功登录应该不成功Location Should Be ${ERROR URL}Title Should Be Error Page从上面的代码来看Robot 在某些特定的关键字上必须使用英语。在关键的代码如关闭浏览器仍然需要使用 Close Browser 英语这些来实现。 Step Code Examples 打开浏览器到登录页Open Browser ${LOGIN URL} ${BROWSER}Maximize Browser WindowSet Selenium Speed ${DELAY}Login Page Should Be OpenLogin Page Should Be OpenTitle Should Be Login Page转到登录页Go To ${LOGIN URL}Login Page Should Be Open输入用户名[Arguments] ${username}Input Text username_field ${username}输入密码[Arguments] ${password}Input Text password_field ${password}提交登录信息Click Button login_button应该跳转到欢迎页Location Should Be ${WELCOME URL}Title Should Be Welcome Page与上面的 Cucumber 相比Robot 对于英语的非开发人员来说更加友好。换句话来说Robot 更像是一个适合于 QA 的语言。作为一个开发人员可能不太喜欢这种形式。 报告示例 不过Robot 提供了一份说尽的报告。细致的展示了每一个测试以及其步骤时间等等。 Gauge Gauge 是 Go 开发的一个跨平台测试自动化工具。它给作者提供了用商业语言测试用例的能力。 关键特性 基于 markdown 的丰富的标记支持用任何程序语言来编写测试代码支持 plugin 的模块化架构跨语言实现一致性。简单灵活和丰富的语法开源的因此它可以自由共享同时被他人改进商业语言测试 : 支持可执行文件的概念帮助您创建可维护和可理解的测试套件支持外部数据来源 IDE Support DSL Code Examples 示例代码https://github.com/phodal/bdd-frameworks-compare/tree/master/gaugejs 失败的登录 |用户名 |密码 ||--------|--------||Jan1 |password||Jan2 |password|失败的登录 ----------- * 当我在网站的首页 * 输入用户名 用户名 * 输入密码 密码 * 提交登录信息 * 页面应该返回 Error Page与 Robot 和 Cucumber 不一样的是Gauge 使用的是大家更熟悉的 Markdown 形式的 DSL。并且从形式上来说更加自由。List 中的每一行就代表着一个元素。因此其对应的实现代码也更加的自由。 Step Code Examples step(当我在网站的首页, async function () {await page.goto(http://0.0.0.0:7272/); });step(输入用户名 query, async function (query) {await page.click(#username_field);await page.type(query) });step(输入密码 query, async function (query) {await page.click(#password_field);await page.type(query) });step(提交登录信息, async function () {await page.click(#login_button) });step(页面应该返回 query, async function(query){await page.waitFor(h1);const text await await page.$eval(#container h1, h1 {return h1.innerHTML;});expect(text).to.equal(query); }); 上面采用的是 Node.js 8 支持的异步写法除此与 cucumber.js 写的代码并没有太多的差异。报告示例 至于Gauge 生成的 UI 并没有 Robot 那么详细但是看上去现代。 那么你喜欢哪个 BDD 框架呢 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
http://www.pierceye.com/news/393063/

相关文章:

  • 大学网站建设wordpress函数调用
  • 如何上传自己做的网站wordpress the content
  • 公司网站介绍范文dede手机网站标签
  • 彩票网站什么做公司内部网络怎么建立
  • 江苏网站备案要多久wordpress素材模板怎么用
  • 淄博网站建设有实力wordpress 异常
  • 卖汽车的网站怎么做百度图片点击变网站是怎么做的
  • 可以做英文教师的网站桂阳网站建设
  • 常州网站建设外包WordPress cos媒体库
  • 教着做美食的网站wordpress 无法安装主题
  • 只选设计师的网站牛商网是干什么的
  • 网站设计中新闻版块怎么做乐清新闻联播
  • 网站开发维护员挣钱吗全球电子商务公司排行
  • 祥云县住房和城乡建设网站百度热议排名软件
  • 网站开发攻克时间网站模版制作教程
  • 遵义一般做一个网站需要多少钱菲斯曼售后服务中心
  • 教务系统网站建设模板下载东莞企业高端网站建设
  • 淮南建设公司网站网站建设对教育解决方案
  • 泰兴建设局网站wordpress资料图片不显示
  • 外贸推广免费网站图片 网站源码
  • 博客推广那个网站列好邢台网红桥
  • 艺之都网站建设微信app开发腾讯视频分享到wordpress
  • 洛阳最好的做网站的公司哪家好建网站需要哪些文件夹
  • 舟山企业网站建设导出wordpress用户
  • 肇庆新农村建设内容在哪个网站有关天猫网站开发的论文
  • 网站建设代码生成器php网站开发专员招聘
  • 视频教学网站cms陕西网站备案查询
  • 湖州网站设计浙北数据wordpress自定义搜索页面
  • 昆明公司网站开发流线型的网站建设
  • 南京建设网站企业泊头市建设网站