精华内容
下载资源
问答
  • ide编码助手Not everyone agrees that the way we code should be influenced by IDE. I can understand where that comes from and agree that total reliance on specific tools for the work is not ideal. ...

    ide编码助手

    Not everyone agrees that the way we code should be influenced by IDE. I can understand where that comes from and agree that total reliance on specific tools for the work is not ideal. Nonetheless, I can’t deny how tools have influenced the way I code, just as Vim and Emacs have for some other people.

    并非所有人都同意IDE会影响我们的编码方式。 我可以理解这是从哪里来的,并同意完全依靠特定工具进行工作不是理想的选择。 尽管如此,我不能否认工具是如何影响我的编码方式的,就像Vim一样 Emacs还有其他人。

    从一开始就不需要完美的代码组织 (No Need for Perfect Code Organization at the Start)

    I remember those days before we start a project: meeting after meeting and document after document to discuss what the ideal code organization should be for a new project. Predicting how the project will evolve. All because we want to avoid future changes to the code base because changing it later will be difficult.

    我记得那些天我们开始一个项目之前:开会之后开会,然后逐个文件讨论新项目的理想代码组织。 预测项目将如何发展。 所有这些都是因为我们希望避免将来对代码库进行更改,因为以后进行更改将很困难。

    With IDE, we can easily move classes around and rename them, and the code will be auto-refactored all together, with little hassle for the developer searching around and manually changing it.

    使用IDE,我们可以轻松地移动类并重命名它们,并且代码将全部一起自动重构,而使开发人员在周围搜索和手动更改代码时省去了很多麻烦。

    Image for post
    Example: IDE feature that can change the file class name and everything can be changed together
    示例:IDE功能可以更改文件类名,并且所有内容都可以一起更改

    With the ability to make changes more easily, we can now not worry too much that our initial structure is not ideal, the name is not good enough, etc., nor be concerned that it’s future-proof, since no one knows the future anyway. Changes later are no longer that daunting a task.

    有了更轻松地进行更改的能力,我们现在不必担心我们的初始结构不理想,名称不够好等,也不必担心它会过时,因为没人知道未来。 以后的更改不再是一项艰巨的任务。

    Having said this, I have to state that some due diligence is required for code to be reasonably structured with names as meaningful as possible. There’s never an excuse to neglect that. It’s just that now we can avoid paranoia over the initial design to be put in place so we can have faster initial delivery.

    话虽如此,我必须指出,为使代码合理地构造名称尽可能有意义,需要进行一些尽职调查。 从来没有理由忽略这一点。 只是现在我们可以避免在最初设计时就产生偏执,因此我们可以更快地进行初始交付。

    编码审查侧重于语义而不是语法 (Coding Review Focus on Semantics Instead of Syntax)

    When I first worked in a software organization, we did code review in a room. We printed the code out and read it to find misalignments of code per the coding guide. I usually looked for things like unused import, wrong { starting point, using spaces instead of tab, etc. (not aligned indentation).

    当我第一次在软件组织工作时,我们在一个房间内进行代码审查。 我们将代码打印出来并阅读,以按照编码指南查找代码的未对准情况。 我通常会寻找未使用的导入,错误的{起点,使用空格而不是制表符等)(不对齐缩进)之类的东西。

    In other words, I was focusing on the code structure more than the meaning of the code. That was important back then as it helped make the code more readable.

    换句话说,我更关注代码结构,而不是代码的含义。 那时很重要,因为它有助于使代码更具可读性。

    Today, I seldom focus on those areas anymore but instead more on the business logic of the code (e.g., should a variable be nullable or not). The reason is simple: tools have helped identify some basic code issues and improved those structures for us.

    今天,我很少再关注那些领域,而是更多地关注代码的业务逻辑(例如,变量是否可以为空)。 原因很简单:工具帮助确定了一些基本的代码问题,并为我们改进了这些结构。

    For example, the tool to auto-recommend the below variable can be private.

    例如,自动推荐以下变量的工具可以是private

    Image for post

    The likelihood of bad structure and naming convention can be easily corrected with an automation aid.

    借助自动化工具可以轻松纠正结构和命名约定错误的可能性。

    首选简明代码而不是综合代码 (Prefer Concise Code to Comprehensive Code)

    In the past, code had to be as comprehensive as possible to ensure its maintainability. What comprehensive means here is that, on first look, the code should give as much information as possible. For example:

    过去,代码必须尽可能全面,以确保其可维护性。 全面的含义是,乍看之下,代码应提供尽可能多的信息。 例如:

    • Coding comments should be available for complex or special cases.

      编码注释对于复杂或特殊情况应可用。
    • There should be a prepended naming convention to show type, e.g., mMemberVariable.

      应该有一个前置的命名约定来显示类型,例如mMemberVariable

    • There should be parameter naming, e.g., download(url = URL, file = targetFile).

      应该有参数命名,例如, download(url = URL, file = targetFile)

    Those were the conventions in the past, when code was reviewed in tools and not everyone in the team had the same IDE. But if everyone shares the same toolset, then we can focus on more concise coding instead of explicitly and ceremonially writing everything down.

    这些都是过去的惯例,当时在工具中审查了代码,并且团队中的每个人都没有相同的IDE。 但是,如果每个人都共享相同的工具集,那么我们可以专注于更简洁的编码,而不是显式地将所有内容写下来。

    不需要太多的显式代码注释 (Explicit code comment not needed as much)

    One can easily extract the Git commit message and find the relevant commit message. That will then reflect the code changes much better. And best of all, if further changes are done, we are no longer worried that the comment is out of sync with the code.

    可以轻松提取Git提交消息并找到相关的提交消息。 这样可以更好地反映代码更改。 最重要的是,如果进行了进一步的更改,我们将不再担心注释与代码不同步。

    Image for post

    不需要太多基于文本的前置命名约定 (Prepended text-based naming convention not needed as much)

    You can make a text-based distinction of variable type, as syntax coloring is now available by default in all IDE source code viewers.

    您可以对变量类型进行基于文本的区分,因为默认情况下,所有IDE源代码查看器中都可以使用语法着色。

    Image for post

    不需要显式参数命名 (Explicit argument naming not needed)

    In the IDE, we can then just point over and get all the function types, so it clearly states the function parameter.

    然后,在IDE中,我们只需指向并获取所有函数类型,即可清楚地声明函数参数。

    Image for post

    I no longer need to code download(url = URL, file = targetFile).

    我不再需要编码download(url = URL, file = targetFile)

    Note: This assumes everyone on the entire team working on the code is using the same toolset (e.g., IDE) and has the ability to review it accordingly.

    注意:这假定整个团队中从事代码工作的每个人都在使用相同的工具集(例如IDE),并且能够进行相应的检查。

    Anyway, I believe that concise coding is the future.

    无论如何,我相信简洁的编码是未来。

    边编码边学习 (Learning While Coding)

    Historically, we had to study what APIs were available to ensure we used the correct one. While this is still very much true, IDEs today have also helped my learning.

    历史上,我们必须研究可用的API,以确保使用正确的API。 尽管这仍然是非常正确的,但是今天的IDE也帮助了我的学习。

    显示可用的API (Showing available APIs)

    With the auto-complete feature, I just need to type and search around, and I will be able to find what API is available for that particular object.

    使用自动完成功能,我只需要键入和搜索,就可以找到该特定对象可用的API。

    Image for post

    学习新的API (Learning new APIs)

    Not only do I see what API is available, but I can also easily access the documentation of the API. Below is an example that provides a description with a diagram.

    我不仅可以看到可用的API,而且还可以轻松访问该API的文档。 下面的示例提供了有关图表的说明。

    Image for post
    Description of throttleFirst function
    节气门功能说明

    有关更好地编码或API使用的建议 (Recommendations for better coding or API usage)

    Below is an example where I use filter { it is Int } which is better replaced by filterIsInsance<Int>(). The IDE recommends it to me.

    下面是我使用filter { it is Int }的示例,最好用filterIsInsance<Int>()代替。 IDE向我推荐了它。

    Image for post

    Above are a few examples of how IDE has helped me vastly in my day-to-day programming job beyond the basic coding, compiling, and debugging that an IDE has been doing all the while. It enables us to do faster development and also forgo some of the older ways of concern while adopting new ways of development.

    上面是一些示例,这些示例显示了IDE如何在日常编程工作中极大地帮助了我,而IDE一直在进行基本的编码,编译和调试。 它使我们能够更快地发展,并且在采用新的发展方式的同时也放弃了一些较旧的关注方式。

    翻译自: https://medium.com/better-programming/how-ide-influences-my-coding-9130d1c18e34

    ide编码助手

    展开全文
  • ide 设置编码 程序员的生活 (Programmer’s Life) I recently wrote about how our coding style has evolved due to programming language evolution and the advancement of tools (e.g. IDE). 我最近写了一篇关于...

    ide 设置编码

    程序员的生活 (Programmer’s Life)

    I recently wrote about how our coding style has evolved due to programming language evolution and the advancement of tools (e.g. IDE).

    我最近写了一篇关于我们的编码风格如何随着编程语言的发展和工具(例如IDE)的发展而发展的文章。

    Not everyone agrees that the way we code should be influenced by IDE. I can understand where that comes from and agree total reliance on some tools for the work is not ideal. Nonetheless, I can’t deny how the tools have influenced the way I code, just like Vim and Emac for some other people.

    并非所有人都同意IDE会影响我们的编码方式。 我可以理解这是从哪里来的,并同意完全依靠某些工具进行工作并不理想。 尽管如此,我不能否认这些工具如何影响了我的编码方式,就像其他人使用的VimEmac一样。

    开始时无需完美的代码组织 (No need for perfect code organization at the start)

    I remember in those days before we start a project, meetings after meetings, documents after documents to discuss what’s the ideal code organization should be for a new project. Predicting how the project will evolve. All because we want to avoid future changes on the BASE of the code because changing them later will be difficult.

    我记得在那些日子里,在我们开始一个项目之前,在会议之后开会,在文件之后讨论用于新项目的理想代码组织是什么。 预测项目将如何发展。 所有这些都是因为我们想避免以后在代码的BASE上进行更改,因为以后进行更改将很困难。

    With IDE, we can easily move class around, rename them, and code will auto refactored all together. With little hassle for the developer to go search around and manually change them.

    使用IDE,我们可以轻松地移动类,重命名它们,并且代码将一起自动重构。 开发人员可以轻松搜索并手动更改它们。

    Image for post
    Example IDE feature that can change the file class name and everything can be changed together.
    可以更改文件类名称的IDE示例功能,所有内容都可以一起更改。

    With the ability to make changes easier, we can now not worry too much our initial structure is not ideal, the name is not good enough, etc, nor concern they are as futuristic prove since no one knows the future anyway. Changes later is no longer that daunting a task.

    有了使更改变得更容易的能力,我们现在不必担心我们的初始结构不理想,名称不够好,等等,也不必担心它们就像是未来派的证明,因为没人知道未来。 以后的更改不再是一项艰巨的任务。

    Having said this, I have to state that some due diligence is required for code to be reasonably structured with as meaningful names possible given to them. It’s never an excuse to neglect that. It is just that we can now avoid paranoid over the initial design to be put in place, so that we can have faster initial delivery.

    话虽如此,我必须指出,为了合理地构造代码并为其赋予有意义的名称,需要进行一些尽职调查。 永远不要忽略这一点。 只是我们现在可以避免对要进行的初始设计产生偏执,从而可以更快地进行初始交付。

    编码审查侧重于语义而不是语法 (Coding review focus on Semantic instead of Syntax)

    When I first work in a software organization, we do code review in a room. We print the code back and read to find misalignment of code per the coding guide. I usually look for things like unused import, wrong { starting point, using spaces instead of tab, etc (not aligned indentation).

    当我第一次在软件组织工作时,我们在一个房间中进行代码审查。 我们将代码打印回去,并按照编码指南进行阅读以发现代码未对准。 我通常会查找未使用的导入,错误的{起点,使用空格而不是制表符等(未对齐的缩进)之类的东西。

    In another word, I’m focusing on the code structure more than the meaning of the code. Those are important back then as it helps make the code more “readable”.

    换句话说,我更关注代码结构,而不是代码的含义。 那时候很重要,因为它有助于使代码更“可读”。

    Today, I seldom focus on those areas anymore, but instead more on the business logic of the code (e.g. should a variable be nullable or not). The reason is simple, the tools have helped identify some basic code issues, and improved those structures for us.

    今天,我很少再关注那些领域,而是更多地关注代码的业务逻辑(例如,变量是否可以为空)。 原因很简单,这些工具帮助识别了一些基本的代码问题,并为我们改进了这些结构。

    e.g. the tool auto recommend the below variable can be private.

    例如,自动推荐工具下面的变量可以是private

    Image for post

    The likelihood of bad structure and naming convention can be easily corrected with the tool automation aid.

    借助工具自动化工具可以轻松纠正结构和命名约定错误的可能性。

    比简明代码更喜欢简明代码 (Prefer concise code than comprehensive code)

    In the past, codes have to be as comprehensive as possible to ensure its maintainability. What comprehensive here means that by the first look at the code, it should have as much info as possible e.g.

    过去,代码必须尽可能全面,以确保其可维护性。 这里所说的全面意味着首先看一下代码,它应该具有尽可能多的信息,例如

    • Coding comment should be available for complex or special cases

      编码注释应适用于复杂或特殊情况
    • Prepended naming convention to show type e.g. mMemberVariable

      前置命名约定以显示类型,例如mMemberVariable

    • Parameter naming e.g. download(url = URL, file = targetFile)

      参数命名,例如download(url = URL, file = targetFile)

    Those are the convention in the past, where code is reviewed in tools and not everyone in the team has the same IDE. But if everyone shares the same toolset, then we can focus on more concise coding instead of explicitly ceremonially write everything down.

    这些都是过去的惯例,其中的代码是在工具中审查的,并非团队中的每个人都具有相同的IDE。 但是,如果每个人都共享相同的工具集,那么我们可以专注于更简洁的编码,而不必显式地将所有内容写下来。

    E.g.

    例如

    不需要的显式代码注释 (Explicit code comment not as needed)

    One can easily extract the git commit message and find the relevant commit message. Those will then reflect the change of the code much better. And best of all, if further changes are done, we no longer worried the comment is out of sync with the code.

    可以轻松提取git commit消息并找到相关的提交消息。 这些将更好地反映代码的更改。 最重要的是,如果进行了进一步的更改,我们将不再担心注释与代码不同步。

    Image for post

    不需要基于前缀的基于文本的命名约定 (Prepended text-based naming convention not as needed)

    Text-based distinction of variable type, as syntax coloring is now available by default in all IDE source code viewer.

    基于文本的变量类型区分,因为默认情况下所有IDE源代码查看器中都提供语法着色。

    Image for post

    不需要明确的参数命名 (Explicitly argument naming not needed)

    In the IDE, we can then just point over and get all the function type, so it clearly state the function parameter.

    然后,在IDE中,我们只需指向并获得所有函数类型,即可清楚地声明函数参数。

    Image for post

    I no longer need to code download(url = URL, file = targetFile)

    我不再需要编码download(url = URL, file = targetFile)

    Note: This is the assumption the entire team working on the code need to be using the name toolset (e.g. IDE) and have the ability to review them accordingly.

    注意:这是假设整个团队中的代码团队都需要使用名称工具集(例如IDE),并具有相应地对其进行审查的能力。

    Anyway, I believe that concise coding is the future, as per the blog below.

    无论如何,我相信简洁的编码是未来,如下面的博客所述。

    边编码边学习 (Learning while coding)

    Historically one has to study what are the APIs available so ensure we use the correct one. While this is still very much true, the IDE today has also helped my learning.

    历史上必须研究可用的API,因此请确保我们使用正确的API。 尽管这仍然是非常正确的,但是今天的IDE也帮助了我的学习。

    显示可用的API (Showing available APIs)

    With the AutoComplete feature, I just need to type and search around, I will be able to find what API is available for that particular object.

    使用“自动完成”功能,我只需要键入和搜索,就可以找到该特定对象可用的API。

    Image for post

    学习新的API (Learning new APIs)

    Not only I see what API is available, but I can also easily access the documentation of the API. Below is an example that provide all the description with diagram.

    我不仅看到可用的API,而且还可以轻松访问API的文档。 下面是一个提供所有说明的示例。

    Image for post
    Description of throttleFirst function.
    节流阀第一功能的说明。

    推荐更好的编码或API使用 (Recommendation of better coding or API usage)

    Below is an example where I use filter { it is Int } which is better replace with filterIsInsance<Int>(). The IDE recommends it for me.

    以下是我使用filter { it is Int }的示例,最好用filterIsInsance<Int>()代替。 IDE会为我推荐它。

    Image for post

    Above are the few examples of how IDE has helped me vastly in my day to day programming job other than the basic Code, Compile and Debug that an IDE has been doing all the while. It enables us to make faster development, and also forego some of the older ways of concern but adopting new ways of development.

    上面是一些示例,这些示例说明了IDE在日常工作中为我提供了巨大帮助,而IDE一直以来一直在进行基本的代码,编译和调试。 它使我们能够更快地发展,也放弃了一些旧的关注方式,但采用了新的发展方式。

    翻译自: https://medium.com/@elye.project/how-ide-influences-my-coding-9130d1c18e34

    ide 设置编码

    展开全文
  • 下载您的Wix网站,在本地IDE中进行编码,进行协作,使用git等! 重要提示:与本地编辑器有关的功能目前处于Alpha发行阶段,并且仍在开发中。 将来的功能可能无法向后兼容。 使用这些功能时,您将承担与使用此类...
  • ide编码害死人

    2015-09-30 09:09:00
    Eclipse)中这样在一般的情况下就没问题,但是在有编码规则的时候需要特别的小心,建议先复制到本地的txt文件中,然后在复制到ide中这样复制后的代码编码规格就会统一,具体什么情况不太明白但是这个很是头疼的问题...

    1.从网上复制代码的时候不要直接复制代码到ide中(MyEclipse,Eclipse)中
    这样在一般的情况下就没问题,但是在有编码规则的时候需要特别的小心,建议先
    复制到本地的txt文件中,然后在复制到ide中
    这样复制后的代码编码规格就会统一,具体什么情况不太明白但是这个很是头疼的问题
    一般是查不出来这个问题的,主要是从网上复制的代码规则和ide的不同

    展开全文
  • selenium ide ...毕竟,为什么不使用这些工具,事实证明它们是更有效,对测试的控制更多! 即使Selenium IDE提供了易用性,它仍然存在很多问题,它不支持跨浏览器测试,运行并行测试等等。 这就...

    selenium ide

    早期的测试人员通常会避免使用Selenium IDE等记录和重播工具进行自动化测试,而宁愿选择使用Selenium Webdriver ,WebDriverIO,Cypress等脚本框架。毕竟,为什么不使用这些工具,事实证明它们是更有效,对测试的控制更多!

    即使Selenium IDE提供了易用性,它仍然存在很多问题,它不支持跨浏览器测试,运行并行测试等等。 这就是原因,当Selenium IDE的开发于2017年停止时,许多测试人员都对Selenium IDE死亡感到印象深刻。

    但是,随着Selenium IDE再次受到关注并且其使用率逐渐增加,这种情况最近有所改变。 原因? Selenium IDE克服了以前的局限性,现在支持跨浏览器测试,并行测试等等!

    在我们较早的博客之一中,用于测试自动化的Selenium IDE被列为2020年值得关注的顶级自动化测试趋势之一。在本Selenium IDE教程中,我将告诉您为什么需要考虑使用Selenium IDE进行测试自动化。

    什么是Selenium IDE?

    Selenium IDE于2006年引入,是一种用于开发Selenium测试用例的记录和重播工具。 IDE易于上手,因为不需要任何特殊设置。

    要开始使用Selenium IDE进行Selenium测试自动化,您需要为相应的浏览器安装扩展(或附加组件)。 IDE提供了一个GUI,用于记录与网站的交互。

    尽管Selenium IDE先前仅可用于Firefox,但现在也可用于Chrome。 Selenium IDE的最新版本是3.17.0。 IDE现在具有跨浏览器支持,还支持并行测试执行。 您可以使用下面的链接下载Selenium IDE的Chrome和Firefox扩展。

    安装扩展(或附加组件)后,您可以开始记录测试。 与网站(正在测试)的交互将被记录并分为以下几类。

    • 命令
    • 目标
    • 说明(可选)

    Selenium IDE的主要功能

    Selenium IDE是一个易于使用的工具,可提供即时反馈,并允许您使用Selenium IDE的SIDE(或命令行)运行器在任何浏览器+操作系统组合上运行测试。

    以下是一些关键功能:

    • 执行测试(和测试套件)– Selenium IDE允许您执行特定的测试或包含一组测试的完整测试套件。
    • 跨浏览器测试–由于可以使用SIDE运行器执行跨浏览器测试,因此可以用于自动浏览器测试。
    • 调试–设置断点并暂停异常,可以很容易地从IDE本身调试测试。
    • 丰富的命令集– Selenium IDE支持许多命令,这些命令可用于引发断言,插入等待,创建循环等。
    • 控制流– Selenium IDE具有广泛的命令集,可启用控制流结构。 if,if..else等命令有助于从IDE执行条件测试。
    • 测试用例重用–运行命令使您可以在另一个测试用例(或测试套件)中重用特定的测试用例。
    • Selenese命令的分组– Selenium IDE支持Selenese命令(或Selenium命令集)的分组,使您可以运行测试。 一系列Selenese命令构成一个测试脚本。
    • 轻松修改和比较测试用例–使用Selenium IDE创建的测试脚本存储为JSON文件。 这样可以轻松比较,修改和检查测试。

    下面显示了我们的Selenium IDE教程(Google-Search.side)的示例测试脚本,以在Google上搜索LambdaTest:

    {
      "id": "0cbf9be7-7cdf-4ab8-ae1e-ece61b57d861",
      "version": "2.0",
      "name": "Google Search",
      "url": "https://www.google.com",
      "tests": [{
        "id": "b3d88a58-3a4f-4189-8614-416817684027",
        "name": "Untitled",
        "commands": [{
          "id": "546f6852-8b27-40c6-9b69-ba88401879ff",
          "comment": "",
          "command": "open",
          "target": "/",
          "targets": [],
          "value": ""
        }, {
          "id": "6120c120-3234-4bc2-bed5-d1dde618704b",
          "comment": "",
          "command": "setWindowSize",
          "target": "1382x754",
          "targets": [],
          "value": ""
        }, {
          "id": "023d8f6e-a411-435d-89d0-e750d19de066",
          "comment": "",
          "command": "click",
          "target": "name=q",
          "targets": [
            ["name=q", "name"],
            ["css=.gLFyf", "css:finder"],
            ["xpath=//input[@name='q']", "xpath:attributes"],
            ["xpath=//form[@id='tsf']/div[2]/div/div/div/div[2]/input", "xpath:idRelative"],
            ["xpath=//div[2]/input", "xpath:position"]
          ],
          "value": ""
        }, {
          "id": "927b9fb7-7ade-4e86-be50-a3dec1baacf7",
          "comment": "",
          "command": "type",
          "target": "name=q",
          "targets": [
            ["name=q", "name"],
            ["css=.gLFyf", "css:finder"],
            ["xpath=//input[@name='q']", "xpath:attributes"],
            ["xpath=//form[@id='tsf']/div[2]/div/div/div/div[2]/input", "xpath:idRelative"],
            ["xpath=//div[2]/input", "xpath:position"]
          ],
          "value": "Lambdatest"
        }, {
          "id": "8f1cdac3-4e91-4ea1-bc08-7c43b15f5659",
          "comment": "",
          "command": "sendKeys",
          "target": "name=q",
          "targets": [
            ["name=q", "name"],
            ["css=.gLFyf", "css:finder"],
            ["xpath=//input[@name='q']", "xpath:attributes"],
            ["xpath=//form[@id='tsf']/div[2]/div/div/div/div[2]/input", "xpath:idRelative"],
            ["xpath=//div[2]/input", "xpath:position"]
          ],
          "value": "${KEY_ENTER}"
        }, {
          "id": "44a1d7f3-bb19-492f-bd66-2e1240f9a46c",
          "comment": "",
          "command": "click",
          "target": "css=.g > div > .rc .LC20lb",
          "targets": [
            ["css=.g > div > .rc .LC20lb", "css:finder"],
            ["xpath=//div[@id='rso']/div/div/div/div/a/h3", "xpath:idRelative"],
            ["xpath=//div/div/a/h3", "xpath:position"],
            ["xpath=//h3[contains(.,'LambdaTest: Most Powerful Cross Browser Testing Tool Online')]", "xpath:innerText"]
          ],
          "value": ""
        }]
      }],
      "suites": [{
        "id": "ac1e77d7-5be7-4359-baf9-b635ab97bb36",
        "name": "Default Suite",
        "persistSession": false,
        "parallel": false,
        "timeout": 300,
        "tests": ["b3d88a58-3a4f-4189-8614-416817684027"]
      }],
      "urls": ["https://www.google.com/"],
      "plugins": []
    }

    在StackOverflow标记为Selenium IDE问题越来越多,这确实表明,测试Selenium测试自动化的测试人员已经注意到Selenium IDE,并且对该社区的兴趣正在增长。 它还可以帮助开发团队确定在以后的版本中应该使用的下一组功能的优先级。

    对于测试人员进行自动浏览器测试,Selenium IDE是一个值得探索的选择,因为它可以将测试用例(使用IDE创建)导出到流行的编程语言,如Python,带有xUnit的C#等。 随着对IDE的好奇心的增加,让我们在本Selenium IDE教程中更详细地了解IDE的积极方面。

    为什么Selenium IDE在质量检查世界中呈趋势

    Selenium IDE远非完美,但其优点在于,它不仅仅是功能强大的记录和回放工具。 尽管不能认为它是广泛用于Selenium测试自动化的Selenium WebDriver的替代品,但它无疑为自动化浏览器测试增加了价值。 让我们深入研究此Selenium IDE教程的原因:

    围绕“无代码自动化测试工具”的日益增长的牵引力

    由于有助于加快测试场景的创建,对有助于在AI和可视化建模基础上进行无代码自动化测试的工具的需求预计会上升。 由于测试人员不需要编码知识来提出测试用例,因此降低了进入的障碍。 它还可以最大程度地减少重复测试用例上花费的时间。

    本Selenium IDE教程中的Selenium测试自动化入门仅需要安装附加组件(或扩展名)。 Selenium IDE允许您通过记录作为测试一部分的操作来从IDE生成测试用例。 “无代码”工具正变得越来越流行,Selenium IDE的开发时间表使无代码自动化测试的前提变得更加有趣!

    积极的“功能开发”时间表

    Selenium IDE项目开发于2017年停止。该项目仅可用于Firefox浏览器,并且宣布从Firefox 55起, 将不再支持Selenium IDE

    后来,使用现代API和Selenium测试自动化的重要功能(例如并行测试,跨浏览器支持,测试弹性)对IDE进行了重新构建,现在Selenium IDE中已包含了更多功能。

    新的Selenium IDE是开源的,您可以在GitHub上找到代码。 与Selenium测试套件中的其他工具一样,它也由Selenium社区管理。

    用于跨浏览器测试的SIDE Runner

    多种浏览器的可用性使跨浏览器测试变得极为重要,因为您的Web应用程序需要跨不同的浏览器无缝运行。 如本Selenium IDE教程前面所述,可以在不同的浏览器和Selenium WebDriver服务器上执行并行测试执行,而无需编写任何代码!

    这是可能的使用SIDE转轮 ,在SeleniumIDE命令行测试运行。 要开始在本Selenium IDE教程中进行自动浏览器测试,如果必须在本地执行测试,则只需安装SIDERunner并获取必要的浏览器驱动程序。

    可以通过从终端触发以下命令来安装SIDE 运行程序 (在发出命令之前必须安装与Node.js一起分发的npm软件包 ):

    npm install -g selenium-side-runner

    一旦安装了SIDE运行程序,就必须执行以下命令来为不同的Web浏览器安装Selenium WebDrivers:

    # Installation of Chrome WebDriver  
    npm install -g chromedriver
    # Installation of Microsoft Edge Driver
    npm install -g edgedriver
    # Installation of Geckodriver for Firefox
    npm install -g geckodriver
    # Installation of IE WebDriver
    npm install -g iedriver

    使用Selenium IDE记录的测试方案必须另存为.side文件。

    在此Selenium IDE教程中,可以使用以下命令在不同的浏览器上执行测试以进行本地测试:

    selenium-side-runner -c "browserName=chrome" <test.side>
    selenium-side-runner -c "browserName='internet explorer'" <test.side>
    selenium-side-runner -c "browserName=edge" <test.side>
    selenium-side-runner -c "browserName=firefox" <test.side>
    selenium-side-runner -c "browserName=safari"  <test.side>

    下面显示的是此在Firefox上执行的Selenium IDE教程中的Google搜索(用于LambdaTest)示例的执行快照:

    有关在Selenium Grid上进行并行测试的SIDE Runner的更多详细信息,请参见此处

    通过SIDE运行器并行执行脚本

    旧的Selenium IDE只能以串行方式执行测试用例(或测试套件)。 对于自动浏览器测试, 并行测试非常重要,因为它可以加快测试过程。

    新的Selenium IDE使您可以并行执行测试。 通过更改Selenium IDE中的相关设置,可以在测试套件中进行测试并行化。 SIDE运行器还允许您通过输入必须执行的并行进程数来并行执行测试。 -w选项用于控制正在运行的并行进程的数量。

    下面显示的是一个测试套件的执行快照,该套件包含此Selenium IDE教程中的两个测试-Google搜索LambdaTest,DuckDuckGo搜索LambdaTest。

    Selenium IDE现在提供更多的弹性测试

    在自动化测试过程中,您会遇到以下情况:上一个软件版本中通过的自动化测试在当前版本中失败。 该视域在Selenium测试自动化中很常见,并用于自动化浏览器测试。

    由于UI代码的更改,对其执行操作的Web定位器(作为自动化测试的一部分)可能已更改。 随着产品的发展,测试变得更加复杂,并且由于某些对象定位器的可访问性问题而导致的某些测试失败会降低测试效率。

    Selenium IDE在自动化测试中建立了弹性,因为它为与之交互的每个元素记录了多个定位符。 在播放过程中,如果Selenium IDE找不到特定的定位器,它将尝试与网页上的所有其他定位器一起使用,直到其中一个成功。

    下面显示的是Selenium IDE教程示例,其中介绍了IDE如何构建测试弹性。 除了基于CSS的定位器之外,Selenium IDE还捕获Click命令的XPath表达式。

    新Selenium IDE提供的支持

    如本Selenium IDE教程前面所述,旧的Selenium IDE在功能上有很多限制。 但是现在它提供了很多功能,任何测试人员都不会介意使用此工具。 以下是Selenium IDE现在支持的一些功能:

    在Selenium测试自动化过程中,您会遇到仅在满足某些条件时才必须执行一组命令的场景。 例如,在您使用任何cookie,时事通讯等之前,有关用户同意的弹出式窗口(或通知)。

    Selenium IDE可以通过条件分支实现条件逻辑(或控制流程),从而可以更改测试中的行为。 它还支持循环执行测试,在测试中,可以基于预定义的标准重复执行一组命令。

    一些有助于Selenium IDE中的条件分支和循环的流行控制流命令包括:

    • 如果,否则,如果结束
    • 次,结束
    • 做,如果重复
    • 同时,结束

    下面显示的是此Selenium IDE教程中的条件分支示例:

    图片来源

    在这个Selenium IDE中,您将看到新的IDE使您可以通过执行脚本执行异步脚本命令来利用JavaScript及其广泛库的优势。 这使您可以从测试脚本中执行JavaScript代码段。

    脚本执行的测试结果可以随后在控制流命令中使用以执行条件执行。

    要执行JavaScript代码段,请在需要调用代码段的位置执行“插入新命令”,然后执行脚本。

    这看起来像一个基本功能,但它不是旧版本的Selenium IDE的一部分。 如果旧的测试脚本在新版本中不起作用,则必须再次记录整个脚本。 如果无法编辑脚本,则自动化(甚至记录和回放)测试的全部目的将丧失。

    使用新的Selenium IDE,由于记录的测试(* .side)以JSON格式存储,因此可以修改测试。 Selenium IDE还支持编辑测试脚本,可以在其中插入,删除或删除命令。 如果您精通JSON,并且需要进行少量编辑,则可以打开.side文件并相应地编辑测试脚本。 但是,应该使用Selenium IDE来编辑涉及重大更改的测试脚本。

    下面显示的是此Selenium IDE教程中编辑测试脚本的示例:

    旧的Selenium IDE不支持调试测试脚本。 就像缺乏编辑脚本一样,对于希望使用IDE进行Selenium测试自动化的测试人员来说,不支持调试也被认为是一个难题。

    您还可以获得暂停异常和设置断点等功能。 单击测试脚本中必须插入断点的位置,然后单击“切换断点”。 在下面的示例中,执行在遇到断点的位置停止了:

    将测试用例导出为流行的编程语言

    使用Selenium IDE中的“导出”功能,可以将一个测试或一组测试导出为流行的编程语言。 当前,支持的语言和测试框架是:

    • C#NUnit
    • C#xUnit
    • Java JUnit
    • JavaScript摩卡
    • Ruby RSpec
    • Python PyTest

    Selenium IDE官方文档中所述,其目的是支持Selenium的其他编程语言绑定,例如Java,JavaScript,C#,Python和Ruby。 如果您想提出针对Python,C#等语言的Selenium测试自动化方案,则导出功能可以节省大量时间。

    要导出测试用例/测试套件,请右键单击测试,选择“导出”,然后选择所需的编程语言。

    重用测试用例

    在某些情况下,需要在不同的测试之间执行特定的测试逻辑。 为各种测试重新创建测试逻辑(或测试步骤)不是可行的解决方案。 例如,对LambdaTest网站的不同部分执行自动化测试的条件要求有效的用户名和密码,用户使用该用户名和密码登录平台。 前提条件(即登录以登录到LambdaTest)可以作为单独的脚本创建。

    Selenium IDE现在支持模块化测试,使您可以在另一个内部重新使用一个测试用例。 在此Selenium IDE教程的以上示例中,可以通过不同的测试脚本来调用Login逻辑,从而简化了测试套件的维护。 Selenium IDE中运行脚本命令用于从另一个调用一个脚本。

    插件的可扩展性

    通过使用插件可以扩展新的Selenium IDE。 有关Selenium IDE的详细插件指南,请参见此处

    这使集成第三方服务或向IDE引入新命令变得更加容易。 拥有用于Selenium测试自动化的集成Selenium WebDriver产品的公司可能会对开发Selenium IDE的插件感兴趣。

    有条件的等待测试自动化

    在Selenium测试自动化中使用等待来处理网页(或Web应用程序)上元素的动态加载。 尝试与尚未加载的Web元素进行交互的测试脚本将导致失败。

    现在,Selenium IDE首先等待页面加载,以确保页面上有必须执行命令的Web元素。 除此之外,IDE还具有从工具栏控制测试执行速度的选项。

    IDE还提供了set speed命令,该命令使您可以通过添加全局延迟来设置执行速度,该全局延迟会影响所有测试运行直到更改。

    在IDE中的内置等待策略不能满足要求的情况下,还可以选择在Selenium IDE中使用显式的等待命令,例如, 等待元素可编辑,等待元素不存在,等待元素不可见等。这些命令几乎类似于有助于在Selenium WebDriver中实现条件等待的命令。

    集成到DevOps工具链中

    流行的持续集成(CI)服务(或工具),例如Jenkins,Travis等,使您可以上载输入文件。 Selenium IDE可以集成到DevOps工具链中,因为可以从命令行调用SIDE运行器(即selenium-side-runner),而.side文件可以放入CI构建脚本中。

    代码存储库中Selenium IDE脚本的管理

    使用新的Selenium IDE记录的测试脚本存储为JSON JavaScript Object Notation)文件。 这与许多其他以二进制格式存储测试脚本的记录和回放工具不同。

    由于脚本以JSON格式存储,因此对测试脚本的基本操作(例如比较,编辑等)也适用于测试脚本。 下面显示的是到目前为止我们在博客中使用的测试脚本的片段:

    {
      "id": "6aac0257-09f5-49b5-b5bf-4cd1db292425",
      "version": "2.0",
      "name": "LambdaTest-IDE",
      "url": "https://www.google.com",
      "tests": [{
        "id": "43056bdf-0a55-432d-b4fb-1a7be839a490",
        "name": "GoogleSearch",
        "commands": [{
          "id": "6f6c3daa-9494-4d59-abd2-4aabdde5d8b7",
          "comment": "",
          "command": "open",
          "target": "https://www.google.com",
          "targets": [],
          "value": ""
        }, {
          "id": "bfda4546-878b-486b-b827-9670536de481",
          "comment": "",
          "command": "setWindowSize",
          "target": "691x377",
          "targets": [],
          "value": ""
        }, {
          "id": "2e519468-dfc9-4c5a-b0af-c994e44f379a",
          "comment": "",
          "command": "mouseOver",
          "target": "css=#hplogo > a > img",
          "targets": [
            ["css=#hplogo > a > img", "css:finder"],
            ["xpath=//img[@alt='Stay and Play at Home with Popular Past Google Doodles: Halloween (2016)']", "xpath:img"],
            ["xpath=//div[@id='hplogo']/a/img", "xpath:idRelative"],
            ["xpath=//img", "xpath:position"]
          ],

    因此,可以使用软件版本控制平台(例如GitHub,GitLab等)来维护Selenium IDE脚本。

    另请阅读:使用Selenium WebDriver测试自动化的22条实用技巧

    结语!

    在本Selenium IDE教程中,我们探讨了Selenium IDE如何通过众多功能来帮助跨浏览器测试,并行测试以及易于维护的测试脚本,在测试社区中日益流行。 它还支持嵌入式代码,并且可以通过插件进行扩展。

    Selenium IDE不仅仅是一个简单的记录和回放工具,其功能与Selenium WebDriver的功能开发相符。 借助代码导出功能,它已成为使用Selenium框架进行自动浏览器测试的理想工具之一。

    这就是本Selenium IDE教程的全部内容! 我希望您喜欢这篇文章,通过与他们共享此Selenium IDE教程或转推我们,帮助您的同行了解IDE对他们有多么重要。 测试愉快!!! 😃


    翻译自: https://www.javacodegeeks.com/2020/06/selenium-ide-what-is-it-why-is-it-must-for-every-qa.html

    selenium ide

    展开全文
  • 1) 因为WingIDE调用putty和plink进行ssh连接,需要先设置putty。 点击下载putty,并解压,把解压路径附到操作系统PATH环境变量中,之后重新启动WingIDE,让它重新读取环境变量。 2) 设置Linux主机的密钥访问。如果...
  • 文章目录IDE安装阿里编码规约检查插件eclipse中的设置idea中的设置在idea的Marketplace安装本地安装 IDE安装阿里编码规约检查插件 环境说明: eclipse版本:Photon Release (4.8.0) idea版本:2018.03.06 参考...
  • 什么需要云IDE

    2020-06-05 15:01:32
    IDE?是新概念吗?老幺小说网 https://m.laoyao.org 不不不,早在 2010 年就有成熟的产品了:Cloud9 IDE 时至如今,云 IDE 已经相当常见了,比如: Cloud9:亚马逊为其云计算服务提供的 IDE Eclipse Che及...
  • 编码IDE后端 编码IDE的后端应用 在本地运行的步骤 请确保您已安装以下设备: node.js npm Postgres 安装项目依赖项: npm install 现在,您必须在Postgres中设置空白数据库和凭据。 数据库将由架构自动配置...
  • IDE:Eclipse Che:Eclipse下一代IDE

    千次阅读 多人点赞 2020-08-28 07:48:16
    Eclipse Che被Eclipse官方称为下一代IDE,作为老牌的IDE,被其寄予厚望的Eclipse Che到底有什么特点,在这篇文章中我们来一探究竟。
  • IDE21 从2013年开始重新启动由Docker支持的CMS-IDE项目,这使得安装该软件的任务变得微不足道。 它需要大量重写,因为其中使用的技术是古老的... 在一个人设计并编码了前端之后,可以将模板导出,将该模板上载到CMS-
  • python自带ide使用Throughout this article, I will discuss a step-by-step guide for using some of the top Python Integrated Development Environments/Code Editors:I. Google Colaboratory | II. Jupyter ...
  • 毕竟,为什么不使用这些工具,事实证明它们是更有效,对测试的控制更多! 即使Selenium IDE提供了易用性,它仍然存在很多问题,它不支持跨浏览器测试,运行并行测试等等。 这就是原因,当Seleniu...
  • 相较于Eclipse Che或者Coder,CodeSandbox目前定位为快速进行Web开发的IDE和原型工具,目标定位与加快Web开发。
  • IDE:Code-Server:VS Code的开源IDE

    千次阅读 2020-08-28 19:48:49
    VS Code作为最近几年上升最为快速的的IDE,TOP IDE index的排位已经快速上升到第四的位置。Eclipse离王座越来越远,而VS Code离前三却越来越近。Coder-Server作为Coder公司开源的一款VS Code的IDE,在2020年已经有...
  • 第一份干货来自网友在GitHub上分享的一份教程:在IDE中刷题,让编码调试一体化。 听起来有点意思啊,让我们来看看是怎么实现的~ 使用教程 安装: 首先,需要安装插件leetcode-editor:...
  • 自己做毕业设计的时候,已经将项目和eclipse的编码格式改成了utf-8,但是在网页还是出现了乱码现象, 经sb同事指导,发现,需要在tomcat服务器的配置文件server.xml中的添加编码格式。 原来的代码 ...
  • 实际上有两种不同的方法可以在您的机器上本地运行应用程序 - 一种使用我们的临时后端服务器,另一种您将在本地运行它。 通常,临时服务器完全可以使用,但如果您正在开发新功能或正在编辑后端,那么拥有后端更有...
  • java 最好的ide_最好的Java IDE

    千次阅读 2020-06-13 18:18:24
    在本文中,我们将检查适用于台式机,Web和移动Java集成开发环境的The Best Java IDE。 有免费的Java IDE,可用于设计,开发和测试桌面,移动和Web应用程序。 目录 1.概述 2.最好的Java IDE 2.1。 桌面开发 ...
  • IDE编辑器编码配置

    2014-09-16 18:12:00
    常用的IDE都支持utf-8编码和unix格式行尾'\n'。 1、XCODE设置文本编码及换行Xcode >> Preferences == Text Editing — Editing:其下有Default text encoding 和default line endings. 2、Eclip...
  • 文章目录一、简介二、动态效果图三、配置服务器过程3.1、打开配置项3.2、添加SFTP服务器链接3.3、起一个服务器的名字,方便上传3.4、...上传代码到服务器,如果不知道的情况下还用传统的方式上传很麻烦,现在很多IDE...
  • 用好CloudIDE提升Web全栈编码效率

    千次阅读 2020-08-18 09:55:41
    近年来,敏捷、DevOps的理念已逐步成为主流。基于云计算的开发环境也正获得越来越多开发者的青睐。不难想象,云端IDE已成未来的趋势。
  • Web 开发的最佳 IDE

    千次阅读 2020-04-22 17:08:00
    那么,什么是最适合您的IDE?我们将协助您选择最好的免费IDE,它将成为您最受欢迎的HTML CSS管理器或免费的JavaScript代码编辑器。 1. Microsoft Visual Studio Microsoft Visual Studio是用于编程的高级且占主导...
  • 如今,JavaScript已用于许多不同类型的应用程序。... 但是JavaScript还可以帮助构建移动应用程序,并且它已经以Node.js服务器的形式在后端占据了重要位置。... 为什么要使用IDE而不是编辑器? 主要原因是IDE可以调...
  • eclipse ide使用 在我职业生涯中经历的许多技术面试中,我注意到很少有人问到具有确定答案的问题。 大多数情况下,我会被问到开放式问题,这些问题没有绝对正确的答案,但会评估我以前的经验以及我能很好地解释事情...
  • 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后...
  • 官网:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/ 目录开发环境准备脚本调试Android 真机USB连接Airtest初始化录制airtest语句**[airtest.core.api]...
  • arduino 编程ide 当我们开始开发Arduino项目时,通常我们倾向于使用Arduino IDE 。 无论如何,如果我们对标准IDE不满意,我们应该考虑几种Arduino IDE替代方案。 众所周知,在开发物联网项目或构建DIY项目时,...
  • pointR是一个R软件包,它提供了基于闪亮的简约IDE,用于使用svgR进行R脚本编写。 pointR主要是用R语言编写的,并带有一些用于调味JavaScript。 ptR是围绕pointR的电子包装器。 使用电子 通过删除和依赖本地浏览器...
  • 致 Python 初学者

    万次阅读 多人点赞 2019-11-10 00:03:26
    什么不呢?IDE可以自动补齐,可以一键运行,还可以断点调试。使用IDE开发项目,就像驾驶一辆内饰豪华的汽车,尽情享受驾驶的乐趣就好了,谁还去关心引擎盖里面发动机是如何工作的呢?我的年轻同事们也都是IDE的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,288
精华内容 12,515
热门标签
关键字:

本地ide编码是什么