selenium入门

79 阅读5分钟

为什么要做自动化

什么是测试?

定义:软件测试是用来描述一种用来促进鉴定软件的正确性,完整性,安全性和质量的过程。

这就要意味着要测出bug或者漏洞需要在执行过程中要尽量要输入不正确,操作具有危险性和攻击性,要考虑不同情景下的反应。从现实意义来考虑,平时我们是怎么样进行测试的?

手工操作点点点借助的是人脑的反应和聪明,为什么不用手点了呢?手会酸,脑子会累,会占据大多数的时间。想一想为什么要学习自动化测试。我们都希望通过工具来解放我们的双手,大脑,眼睛。什么是自动化?

自动化是指机器设备,系统或过程(生产管理过程),在没有人或较少人参与的情况下,按照人的要求,经过自动检测,信息处理,分析判断,操纵控制,实现预期的目标的过程。

平时我们接触过的自动化工具有很多,比如按键精灵自动加血加蓝,搜索引擎,以前找一片文章要把所有的资料摊开,一页一页翻,现在直接列出来,可以在编辑器里面实现以下索引。自动化测试课程里要学不少的软件测试吧?

使用了自动化测试软件后,还是觉得不够,因为有的测试需求比较麻烦,包含几十个上百个步骤,用软件测不出来,就算能实现也比较麻烦,这时候我们面临的问题就是:用软件定制化不高,对于复杂场景实现不了。

代码的定制性就比较高了,想实现什么功能可以自己去实现,到后面实现完后,那些不会编程的测试人员怎么办?不能让他们闲着,让他们编写测试平台,让不会代码的同学也可以轻松掌握变成语言和相关代码库的使用和实现原理。

HTML语言

先看一个界面:百度

柠檬班
hello

meta代表什么?可以在w3school查看。结构怎么感觉有点熟悉?跟字典有点相似 {“name”:"test","tags":{"game":"王者","grade":"100"}}

标记性语言

定义:标记性语言是一种将文本,以及文本相关的信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。

日常生活中怎么标记?

游戏厅:开始,加速,刹车,投币。red:stop green :start

读书的时候,学生会用不同颜色的笔来进行记录,重点,难点,易错点。

字典上方的a,b,c的小纸片

代码标记。python中的a def class

作用是什么?让我们更加方便,更加容易找到我们想要的,编程中出现了好多标记性语言html, xml,markdown,rst

如果让我们自己设计一款标记性语言应怎么进行设计?

标记符号,tag,key

标记的内容,value

各种属性,什么颜色的,什么形状的

title(color="red") | 柠檬 paramgraph | 欢迎来到 button | 发送

定义:html 全民hypertext markup language(超文本标记语言)是一种用于创建网页的标准标记语言。常常和css js 一起使用来构建漂亮的界面

1.选择合适的测试方式

1.探索性式手工测试

2.依赖脚本的手工测试

3.生成脚本的测试工具

4.代码方式

大多数情况下,都是这四种方式组合

如何分配这四种方式

代码方式主要用在什么样的测试场景

2.没有最好的技术,只有合适的技术

是否能解决你的问题

跑demo

环境搭建

学习成本低

友好的文档

丰富的课程

完善的解决方案

大量的案例

完善的生态

社区活跃

更新活跃

api成熟

企业很愿意用,大量招聘岗位

方便迁移和扩展

支持多平台

支持多语言

是否开源

方便团队协作

手工测试团队

开发团队

你能接受他的缺点吗

没有十全十美的技术

没有最好的测试工具,没有最好的测试语言

只有适合的场景

3.selenium有多适合做自动化

主流的技术:

selenium

cypress

playwright

puppeter

问题:

selenium能解决web自动化的问题吗

selenium容易学吗

selenium资料丰富吗

selenium方便迁移和扩展吗

selenium方便团队合作吗

selenium目前的缺点

截图,录制。回溯不方便

没有流量拦截

没有mock

在反爬中会被识别,其他工具更容易被识别到

selenium只是一个自动化辅助工具

selenium只是一个浏览器自动化工具需要结合测试工具进行使用

selenium无法提高你的测试水平

帮助你快速定位bug

4.selenium在自动化方案中的角色

selenium在企业中的使用情况

金字塔模式

ui测试特征

贴近用户真实使用ui 又叫user interface 是用户直接和软件接触的载体。用户几乎所有的操作都是通过ui来实现的,因此ui测试最能模拟实际的用户使用情况,进行ui测试需要站在用户的立场,考虑用户的痛点,模拟用户的行为操作。用户使用产品的功能,是想获得某种能力,因此应该通过功用的设计测试用例,而不是单纯的从产品特性和说明来考虑。

变化快

效率低

冒烟

回归

及时集成和反馈