睿象云智能告警平台的分派策略
996
2022-12-31
本文目录一览:
一、为什么要做自动化?
前提:主流程稳定,周期长,脚本可重复利用。
1.节省人力资源
2.提高效率
3.面试需要
二、什么是RobotFramework:
基于Python的关键字驱动的自动化框架。
1. 基于Python:就是由python语言开发的这个框架。
2.关键字驱动:关键字驱动测试又称为表格驱动测试,是自动化测试的一种方法,是数据测试的一种改进方法。关键字驱动主要包括测试步骤、测试步骤中的对象,测试对象执行的动作,测试对象需要的数据
3.自动化框架?:是应用于自动化测试,框架提供可重用的基础自动化测试平台,提供自动化测试执行和管理功能的组织架构。
三、pip的常用方法:
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。
以下在win10_x64 cmd中操作:
安装:pip install 包名
eg:pip install robotframework
安装指定版本:pip install 包名==版本号
eg:pip install robotframework==1.7.4.1
升级指定包:pip install --upgrade 包名
eg:pip install --upgrade robotframework
卸载:pip uninstall 包名
eg:pip uninstall robotframework
搜索安装包:pip search 包名
eg:pip search robotframework
查看当前电脑上已经安装的包:pip list
查看当前电脑上可以升级的包:pip list -o
四、rf的安装:
安装RF自动化框架:pip install robotframework
安装RF自动化框架IDE:pip install robotframework-ride
安装wxpython(ride依赖wxpython):pip install wxpython
ps :实际上新版本pip在安装ride时会自动安装所需依赖,也就是wxpython
版本信息:Win10 x64 + Python 3.7.7 + rf 3.1.2 + ride 1.7.4.1 + wxpython 4.0.7.post2
ps :ride 1.x版本不支持Python 3.8及以上,ride 2.x(开发中)支持Python 3.8
rf日志中文乱码解决方法:修改文件 python安装目录下 Libsite-packagesrobotidecontrib estrunner estrunnerplugin.py 第 565 行,将 SYSTEM 改成 OUTPUT ,重启ride工具。
五、元素定位:
id :以百度搜索输入框为例
在RF中写法: id=kw
name :以百度搜索输入框为例
在RF中写法: name=wd
xpath :Xml Path Language
1. 绝对路径:从html根部逐级(从上至下)查找
/html/body/p[1]/p[1]/p[3]/p/p/form/span[1]/input
在RF中写法:xpath=/html/body/p[1]/p[1]/p[3]/p/p/form/span[1]/input
2.相对路径:根据节点的上下文进行查找
eg://p/form/span/input 这里是在html中找一个p,p里面包含一个form,form包含一个span,span包含一个input,找有这样一个四层的关系的input标签,要注意如果html中有多个符合这种层级关系的input,会默认选第一个,也就是说这种方式未必是完全准确的。
3. xpath相对定位我们还可以根据元素的属性来查找:
eg://p/form/span[1]/input[@type] 这里是找符合这样一个层级关系并且有'type'这个属性的input标签
在RF中写法:xpath=//p/form/span[1]/input[@type]
eg://p/form/span[1]/input[@type='submit'] 这里是找符合这样一个层级关系并且'type'这个属性的值为'submit'的input标签
在RF中写法:xpath=//p/form/span[1]/input[@type='submit']
eg://p/form/span[1]/input[contains(@type,'sub')] 这里是找符合这样一个层级关系并且'type'这个属性的值包含'sub'的input标签
在RF中写法:xpath=//p/form/span[1]/input[contains(@type,'sub')]
以上是根据属性,如果是下面这样的a标签,我们还可以根据链接文字来进行定位
点我
eg://a[contains(text(),'点我')] 这样就是找所有a标签并且文字为'点我'的元素了
在RF中写法:xpath=//a[contains(text(),'点我')]
小技巧:
在 Chrome-F12-Console 中根据Xpath寻找元素:使用 $x (""),引号中填写xpath路径,如$x("/html/body/p[1]/p[1]/p[3]/p/p/form/span[1]/input")
css:
id: 以百度搜索输入框为例
在RF中写法: css=#kw
class: 以百度搜索输入框为例
在RF中写法: css=.s_ipt
css根据属性定位 :
[id='kw'] 表示查找id值为'kw'的元素
[name^='w'] 表示查找name值为'k'开头的元素
[class$='ipt'] 表示查找class值为'ipt'结尾的元素
[autocomplete*='f'] 表示查找autocomplete值中包含'f'的元素
[id='kw'] [name^='w'] 表示查找id值为'kw'并且name值为'k'开头的元素
在RF中写法:css=[id='kw'] [name^='w']、css=[class$='ipt']、
css=[maxlength='255']、css=[autocomplete='off']
ps:id和class也是属性,只是在css中针对id和class多了一种简单的写法,如上面的
css=#kw、css=.s_ipt
css根据标签定位:
input
表示查找当前页面所有input标签
在RF中写法:css=input
a,input
表示查找当前页面所有a标签和input标签
在RF中写法:css=a,input
span input
表示查找span标签下的所有input标签,哪怕是span下下级的input
在RF中写法:css=span input
spaninput
表示查找父元素为span标签的所有input标签,注意和span input的区别
在RF中写法:css=spaninput
span+input
表示查找紧挨在span元素后的第一个input元素
在RF中写法:css=span+input
span~input
表示查找紧挨在span元素后的所有input元素
在RF中写法:css=span~input
ps :其实大家都知道,因为页面上只依靠标签定位的话重复的可能性太大了,所有我们可以采用 标签 + 属性 的方式来进行定位
例如 spaninput[id='kw'][name^='w'] 意思是查找所有父标签为span的input标签,并且该标签中有属性id的值为kw且属性name的值为w开头
在RF中写法:css=spaninput[id='kw'][name^='w']
小技巧:
在 Chrome-F12-Console 中根据css寻找单个元素:
使用 $ (""),引号中填写css选择器,如$("spaninput[id='kw'][name^='w']")
在 Chrome-F12-Console 中根据css寻找多个元素:
使用 $ (""),引号中填写css选择器,如$("spaninput[id='kw'][name^='w']")
自动化测试与软件开发过程从本质上来讲是一样的自动化性能测试框架搭建,无非是利用自动化测试工具(相当于软件开发工具)自动化性能测试框架搭建,经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格);
从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成该套测试脚本(即主要功能为测试的应用软件)。
1、自动化测试需求分析。
当测试项目满足了自动化的前提条件,并确定在该项目中需要使用自动化测试时,自动化性能测试框架搭建我们便开始进行自动化测试需求分析。此过程需要确定自动化测试的范围以及相应的测试用例、测试数据,并形成详细的文档,以便于自动化测试框架的建立。
2、自动化测试框架的搭建。
所谓自动化测试框架便是像软件架构一般,定义了在使用该套脚本时需要调用哪些文件、结构,调用的过程,以及文件结构如何划分。
而根据自动化测试用例,我们很容易能够定位出自动化测试框架的典型要素自动化性能测试框架搭建:
a、公用的对象。
不同的测试用例会有一些相同的对象被重复使用,比如窗口、按钮、页面等。这些公用的对象可被抽取出来,在编写脚本时随时调用。当这些对象的属性因为需求的变更而改变时,只需要修改该对象属性即可,而无需修改所有相关的测试脚本。
b、公用的环境。
各测试用例也会用到相同的测试环境,将该测试环境独立封装,在各个测试用例中灵活调用,也能增强脚本的可维护性。
c、公用的方法。
当测试工具没有需要的方法时,而该方法又会被经常使用,我们便需要自己编写该方法,以方便脚本的调用。
d、测试数据。
也许一个测试用例需要执行很多个测试数据,我们便可将测试数据放在一个独立的文件中,由测试脚本执行到该用例时读取数据文件,从而达到数据覆盖的目的。
在该框架中需要将这些典型要素考虑进去,在测试用例中抽取出公用的元素放入已定义的文件,设定好调用的过程。
自动化测试框架的定义为
由一个或多个自动化测试基础模块、自动化测试管理模块、自动化测试统计模块等组成的工具集合。
按框架的定义来分,自动化测试框架可以分为:基础功能测试框架、管理执行框架;按不同的测试类型来分,可以分为:功能自动化测试框架、性能自动化测试框架;按测试阶段来分,可以分为:
单元自动化测试框架、接口自动化测试框架、系统自动化测试框架;按组成结构来分,可以分为:单一自动化测试框架、综合自动化测试框架;按部署方式来分,可以分为:单机自动化测试框架、分布式自动化测试框架。
以上内容参考 百度百科-自动化测试框架;百度百科-自动化测试
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试
1
认识Locust
说起性能测试工具,大家肯定想到的都是Jmeter,是的,由于其简单易用、功能强大,已经变成主流的压测工具之一。当需要实现一些高级功能的时候,可以使用Java语言对Jmeter进行扩展。
但是很多小伙伴只会Python,不会Java,可不可使用Python语言来做性能测试呢?答案是肯定的,今我们就来介绍下基于Python的强大的性能测试框架Locust。
Locust直译是“蝗虫”的意思,意在压测时产生的压力就像是漫天蝗虫一样,铺天盖地。Locust是用Python实现的开源性能测试框架,不同于其他压测工具基于进程/线程产生压力,Locust是完全基于事件,支持分布式,一个Locust节点可以在一个进程中轻松支持上千并发用户。从这一点来看,它的设计思路要远优于Jmeter、Loadrunner之类的工具。
2
Locust环境搭建
1、安装Python,建议使用Python3.6+
2、安装Locust及其依赖:pip3 install -i https://pypi.douban.com/simple locust
3、验证是否安装成功,执行命令:locust -V,如果能看到版本信息,即代表安装成功
3
Locust脚本编写
不同于Jmeter的界面化脚本配置,Locust的脚本需要完全写Python代码,虽然从一定程度提高了脚本编 写的门槛,但是对于熟悉Python的人来说还是比较简单的,况且自己写代码的话,脚本的灵活性更高。
Locust脚本就是一个普通的Python文件,但是在脚本中必须先定义一个类,然后继承Locust提供的一个HttpUser类。在测试类里,将压测的请求封装到一个函数里,一个简单的Locust脚本就完成了。
看个实际的例子,比如现在要测试这样一个接口
URL: pinter/login
参数:userName=adminpassword=1234
在上面脚本中,login_test是自定义的测试函数,函数上添加了一个装饰器@task,标明此函数是需要
Locust并发执行。在函数内调用了父类的client对象中post方法,发起了一次HTTP post请求。
在MyTest类里,必须添加一个wait_time属性,此属性设置了循环调用login_test之间的等待时间,
between(1,1)代表等待时间为1秒
4
Locust脚本运行
免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以 转发文章 + 私信「码同学666」获取资料哦
脚本写好后,需要在命令行上去运行Locust脚本,在cmd下(或者Mac的终端、Linux命令行),进入到脚本目录,执行命令
然后在浏览器上访问URL: http://localhost:8089/ ,就可以打开Locust的压测控制页面
5
Locust压测执行
在Locust的压测控制页面打开后,就可以针对脚本做一些压测的配置了,比如并发数,压测持续时间,
host等,其中:
Number of total users to simulate: 并发数,代表模拟了多少虚拟用户
Hatch rate: 每秒产生的用户数
Host: 目标服务器的ip或域名
点击"Start swarming",即可开始压测,在web页面会上统计出实时的性能汇总数据
字段解释
TPS和响应时间曲线图
好啦,关于Locust的入门,今天就介绍这么多啦,后续会继续介绍Locust的高级特性和详细功能,敬请期待!
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
关于自动化性能测试框架搭建和自动化测试框架怎么搭建的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 自动化性能测试框架搭建的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于自动化测试框架怎么搭建、自动化性能测试框架搭建的信息别忘了在本站进行查找喔。发表评论
暂时没有评论,来抢沙发吧~