Selenium实战——.Net下的自动化测试搭建

Selenium实战——.Net下的自动化测试搭建

更新:响应各位朋友的需求,现在将代码推到了GitHub服务器上,今后也将会在此基础上更新,然后再次感谢各位的支持~~~~

地址如下:
https://github.com/zhaoyan42/SeleniumInAction.git

这篇文章,其实我酝酿了好一阵子。作为一个开发人员,搞这个事情总归有点狗拿耗子的感觉。各位看官手下留情,西红柿和鸡蛋留着回去炒个菜别朝我来。博客我不常写,至于文笔……大家忍忍就过去了。

话说Selenium这东西出来很长时间了,我开始接触的时候已经是2.0发布以后的事情了。纵观国内,Selenium及其相关资料大多在Java领域有所耳闻,至于.Net的资料,国内大体是很少的。作为坚定的.Net阵营程序员,我觉得这是无法忍受的。

image

一切的一切之前,先看看Selenium的体系结构:

  • Selenium IDE ——录制脚本神器,虽然有时候会有点犯二,但是对于初学者用来快速上手不失为快捷简便的方法。
  • WebDriver ——脚本解析执行者,无论录制还是自己编写测试脚本,你都离不开它来执行。
  • Grid ——神级工具(对于高级应用来说它和宅男的快播一样重要AV5W2LR]H5YAQXT}1N2LPDY,我这种小纯洁是不可能用过快播的各位你们要相信我),主要是分布式执行脚本,当然,还可以借助它发挥其他作用,今后的文章肯定会提及它。

 

那么,了解完这就正式开始了,这里我先给大家讲讲 .Net平台下Selenium 环境的搭建。

首先,你要有一个内裤(呃……),如图所示,最简单的类库。其下的3rdParty是所有需要的第三方组件

image

接下来,我们用Selenium IDE录制一个百度搜索的脚本(敢问度娘除了测试网速还有什么用?)

录制过程我就不赘述了,网上一搜一大把。但是唯一需要注意的是我们要将输出格式调整为C#

image

录制的操作步骤为:

1、打开百度

2、在关键字栏目输入“暴走漫画”

自动得到以下代码(仅贴出关键的,保护滚轮人人有责)

这里和大家一起分析一下代码的功能

image

SetUp特性是NUnit中提供的,表示这一部分是初始化工作

  1. 初始化了一个WebDriver提供的火狐驱动器(FirefoxDriver),执行脚本全靠它了。当然这里可以有更多的选择,例如IE、谷歌浏览器,甚至安卓等浏览器。不过根据经验,火狐17的ESR版本更加稳定。
  2. 将根URL设置为度娘
  3. 将一个用于错误记录的S—B(你敢说你没用这个名字命名过这种变量?)

 

image

Test特性表示这一部分是测试代码主体,可以看到都是基于驱动器的实例在操作浏览器进行点击和输入

  1. 导航到百度
  2. 找到id为kw的元素,并且清空它
  3. 找到id为kw的元素,并且键入“暴走漫画”
  4. 找到id为su的元素,并且点击它

这和我们录制的操作基本一致

image

TearDown,眼泪落下,你说测试结束的时候有特么这么煽情么?

  1. 试图关闭浏览器,如果出错也不屌它,这里至今我也没搞清楚为什么不做处理,希望神人解答。
  2. 然后看看上面创建的记录错误的S—B有没有内容,如果有内容则测试失败。

运行我们可以发现回放正常,重复执行了我们所录制的操作。至此,最基本的测试框架就搭建完成。

其实一路下来我们发现其实很简单的,博主的智商也不过如此,这还需要写个什么鸟博客来JJYY一大串?

 

这个工程还只能供刚刚入门的测试人员参考,在这个工程中,我们其实从表面上就可以发现很多的问题:

  1. 代码过于专业化,不自然,可读性不高
  2. 录制的脚本太过于机械化,例如Test中的第二句,其实在我们这次情况下是可有可无的。
  3. 重复代码过多,不光是找元素的代码driver.FindElement(By.Id(“XX”)),还有一些我没有列出来的自动生成的IsElementPresent、CloseAlertAndGetItsText,不得不说这些方法是很有用的,但是如果你再录制一个自动生成的脚本,这些方法又会出现,并且完全相同。在程序设计中,这些方法在维护的时候会非常令人头疼,尤其是多起来了以后。

上面这些都是需要解决的问题,真正的项目中的代码如果写成这样会被接你的班的程序员喷死的。那么,在下一次博客中,我们再来一起探讨相关问题,接下来是观众提问时间谢谢~

转载于:https://my.oschina.net/kitten63928/blog/113060

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110194.html原文链接:https://javaforall.net

(0)
上一篇 2021年8月22日 上午9:00
下一篇 2021年8月22日 上午10:00


相关推荐

  • 漫步者lollipods如何调节音量_漫步者LolliPods怎么配对双耳-使用教程[通俗易懂]

    不少用户在入手漫步者LolliPods后不知道怎么配对双耳,小编今天为大家带来了漫步者LolliPods的使用教程,感兴趣的朋友不要错过了哦。漫步者LolliPods配对双耳教程方法一一、先随便连接一只耳机,连接以后点击断开连接,把左耳放回充电仓,二、拿出右耳,把充电仓盖上让右耳断开左耳的链接,然后手机搜索能搜到右耳连接,三、这样两个都可以匹配上了,并且使用时随便一只连接都是主耳机方法二第一:拿出…

    2022年4月9日
    725
  • 图解 Vue 响应式原理

    图解 Vue 响应式原理最近部门分享,有同学提到了Vue响应式原理,大家在讨论时,发现一些同学对这一知识理解还不够深入,不能形成一个闭环,为了帮助大家理解这个问题,我重新过了一下Vue源码,并整理了多张流程图,便于大家理解。Vue初始化模板渲染组件渲染本文Vue源码版本:2.6.11,为了便于理解,均有所删减。本文将从以下两个方面进行探索:从Vue初始化,到首次渲染生成DOM的流程。从Vue数据修改,到页面更新DOM的流程。Vue初始化先从最简单的一段Vue

    2022年4月30日
    40
  • Pytest(13)命令行参数–tb的使用

    Pytest(13)命令行参数–tb的使用前言pytest使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败。–tb=style参数可以设置报错的时候回溯打印内容,可以设置参

    2022年7月30日
    8
  • 拉格朗日三次插值公式_差值函数

    拉格朗日三次插值公式_差值函数第一部分:问题分析(1)实验题目:拉格朗日插值算法具体实验要求:要求学生运用拉格朗日插值算法通过给定的平面上的n个数据点,计算拉格朗日多项式Pn(x)的值,并将其作为实际函数f(x)的估计值。用matlab编写拉格朗日插值算法的代码,要求代码实现用户输入了数据点(xi,f(xi))、插值点之后,程序能够输出插值点对应的函数估值。(2)实验目的:让同学们进一步掌握拉格朗日插值算法的原理以及运算过程,并且通过matlab编程培养实际的上机操作能力和代码能力。第二部分:数学原理要估计任一点..

    2025年6月15日
    5
  • 关于options请求方式

    关于options请求方式关于 options 请求方式 options 请求方法的主要用途有两个 1 获取服务器支持的 HTTP 请求方法 2 用来检查服务器的性能 例如 AJAX 进行跨域请求时的预检 需要向另外一个域名的资源发送一个 HTTPOPTIONS 请求头 用以判断实际发送的请求是否安全 为什么会出现 options 请求方式想必很多小伙伴在第一次遇到请求方式为 options 时 会有一丝诧异 有些人会百度百度 有些人可能压根不在乎 至于为什么会出现 options 请求 我也是百度查阅资料略知一二 这得从浏览器同源策略和跨域说

    2026年1月31日
    2
  • Linux信号列表

    Linux信号列表

    2021年8月29日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号