- 博客(18)
- 收藏
- 关注
原创 web自动化中的文件上传和iframe处理
1、例如修改头像这种操作,点击完修改之后,会进入操作系统的页面,选择目标文件,然后点击打开,才会回到网站,进入操作系统这个步骤,我们可以通过上传文件路径来代替。按照iframe标签的name或者id的属性值进行切换,如果这两个值是动态变化的就不能用这种方式了。由于目标元素不在一个iframe标签中,因此我们需要完成iframe切换,再去定位元素信息,有三种切换方式。把iframe当作一个普通元素进行定位,然后再把driver切换到这个iframe标签上。2、切换回原来的iframe标签。
2024-08-11 22:02:39 140
原创 web自动化中,把选填的输入框改成编辑的输入框,执行js
在测试过程中碰到选填的输入框,如果通定位元素,然后点击选填的方式进行操作,会很麻烦,所有我们可以通过修改js的方式,把选填的输入框改成可以编辑的输入框。4、输入时间的浮层会出现,会挡住保存按钮,所有在保存之前我们需要把让浮臣消失,点击键盘的回车收起浮层。5、进行断言,断言成功中文是否包含在当前页面的源码中。1、调用js删除生日输入框的readonly属性。三、判断一段文字是不是包含在页面源码中。二、我们可以通过开发者助手来进行调试。3、定位生日输入框,然后清空内容。
2024-08-10 23:34:10 232
原创 web自动化中的等待
隐式等待主要针对元素定位,在定位时,10秒内找到才会报错如果第三秒找到,那剩下的7秒是不会等待的,代码会继续往下运行隐式等待是全局性的设置,可以随时更改,更改后对更改后的元素生效针对点击,输入,悬浮等动作一概无效。
2024-08-10 23:22:53 144
原创 web自动化中的窗口操作
2、当窗口比较多,或者系统打开窗口的顺序不能确定时,我们可以对窗口进行遍历,根据目标窗口的特性进行切换。比如窗口的title,url地址,特定元素等。Selenium中,每个窗口都有自己的唯一标识,叫做句柄,我们可以通过句柄进行窗口切换。在测试的过程中时常会打开很多窗口,当我们需要在新窗口操作时,就需要对窗口进行切换,在。通知Selenium Grid浏览器不可用,以便其他会话可以使用。1、获取所有窗口句柄,然后根据窗口顺序进行切换。关闭与该WebDriver会话关联的所有窗口。三、会话结束,退出浏览器。
2024-08-07 11:15:48 235
原创 selenium css定位
表达式:meta[name="referrer"][content="always"]含义:定位name属性为referrer的meta标签的元素。含义:定位class属性为c-menu-fold的元素。含义:以text开头的type属性的script元素。表达式:meta[name="referrer"]表达式:script[type^="text"]含义:以pt结尾的type属性的script元素。表达式:script[type$="pt"]表达式:script[type*="sc"]
2024-08-07 10:32:33 670
原创 Pytest的环境切换
在公司可能存在多套环境,每个环境对应的数据库,redis,域名,用户都不太一样,尽管有配置文件,但是手动改起来也比较麻烦,我们希望在框架层面执行时,只需要指定执行的环境名称即可,他能够自动将各个环境信息切换到当前执行中来。
2024-07-23 22:51:20 380
原创 Pytest框架中公共基本信息配置文件抽取
公共基本信息比如卖家,买家,管理员,验证码等基本信息,数据库,redis,各个服务对应的域名,如果写在代码里面,要修改起来会比较麻烦,为了能够更好的维护他们,我们将他们放入配置文件中进行管理。
2024-07-23 22:22:24 239
原创 接口自动化并发执行,多进程
~~指定分配机制对于pytest-xdist来说,还有一个参数叫做--dist,可以指定多个进程并发时测试用例分配的维度,默认分配是按照用例,如果用例之间存在关联,他们没有被分配到同 一个进程,必然会失败,因此我们设计用例时,将有关联的用例放在同一个测试文件中,并且将分配机制改成按照测试文件进行分配,当多进程并发时,指定--dist==each,执行完成后测试报告的用例数量不对,比如一共10条用例,两个进程执行测试报告里面就应该有20条用例的数据,但是测试报告上面依然是10条。
2024-07-22 23:19:51 826
原创 复杂接口参数数据参数化处理
4、设计封装一个方法,使用jsonpath来完成数据替换,通过第三步的jsonpath表达式匹配到第二步默认参数目标,并且把新的值替换到默认参数中去,完成测试数据替换。json_object是json数据,json_path是要改数据的jsonpath,new_value是要改的数据。一、在接口调用的时候,参数化遇到复杂json,如果把每个参数当成独立列来对待,数据比较多,维护起来比较复杂。3、在数据文件中只维护用例对应的目标参数即可参数格式是{"$.goods_name":""}所以我们设计一个方法。
2024-07-21 12:53:50 321
原创 使用Excel和Yaml实现数据驱动
如果测试用例和real_excel不在同一个包下,会报错数据文件找不到FileNotFoundError,这个问题是因为如果操作文件传入的是相对路径,那么python在执行的时候会根据执行文件所在的路径去找,很多时候找不到所以我们要想办法传绝对路径,不管在哪里执行都能找到,但是绝对路劲也不能写死,所以需要设计一个文件管理的角色,帮助管理框架中的数据及配置文件的绝对路径。3、用例里面调用real_excel来获取excel里面的数据,读取出来的数据是列表嵌套列表的形式,是符合数据驱动的要求的。
2024-07-16 23:32:05 497
原创 mysql在自动化测试中的运用
cursorclass=pymysql.cursors.DictCursor # 这个参数的意思是把得到的数据当做一个字典。cursorclass=pymysql.cursors.DictCursor #这个参数的意思是把得到的数据当做一个字典。self.connect.commit() #提交事务,如果不提交,下次查询查出的就是新数据。#这个游标对象会将当前数据库的结果集进行存储,后续的操作都在这个结果集上操作。#得到的res是列表嵌套字典的形式,每个字典就代表每行数据。
2024-07-14 21:10:47 751
原创 redis在自动化测试中的运用
需要先定义一个类,初始化方法是对连接进行定义,再定一个方法对redis进行操作,练习的项目是把java对象做了序列化存储后的数据,需要借助第三方库转成python中的对象,才能进行解析,javaobj-py3。#订单确认参数存储在redis数据库里面的是一个hash,对应python里面的字典,所以我们可以通过遍历的方式拿到里面的数据。redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)设置值:set name dawei。
2024-07-14 18:11:40 963
原创 python面向对象
面向对象里面有两个重要的概念,类、对象,Plane是类,Plane(sn="001")是对象,类的定义里面self就代表对象本身。# 这就是根据类去创造一个对象,Plane()这是创造的过程,然后将创造的对象赋值给plane1这个变量。#对于每个对象都有的属性和行为,并且大家都不相干,此时属性和行为就需要采用实例属性和实例方法来定义。#当前类所有代表的事物,公共的行为,但是这个行为又不会因为对象的改变而改变,那么就采用类方法来定义。#针对对象的行为动作,定义成方法,self代表对象本身。
2024-01-18 23:49:28 667
原创 Pytest测试框架学习
右键执行,pycharm默认是以unittests的方式执行,需要修改执行方式,然后把之前的执行记录清除,然后就可以右键执行,查看所有用例的执行结果,需要勾选控制台上的对号。以类的方式编写测试用例,不能包含init方法,以test开头的方法代表一条用例。pytest -sv 文件路径::测试类::测试方法,sv表示有详细的执行日志。#针对接口响应字段的核心数据做断言,code码。纯函数方式编写测试用例,以test_命名的函数。#断言,断言就是判断结果是否正确的过程。二、pytest编写测试用例的规则。
2024-01-10 00:44:53 441 1
原创 Python Requests库学习
要调用一个接口,需要知道接口的url(域名和地址),接口请求的头信息,接口的请求参数,对于get接口来说,查询参数会定义为params,把请求信息准备好就可以发起接口调用,接口调用可以用requests.get(url=url,params=params)的方式进行调用,我们可以定义一个变量来获取接口响应对象res=requests.get(url=url,params=params),接口响应包含,响应头信息,响应状态码,响应body体数据。一、创建新项目,安装requests库。路径参数的get接口。
2024-01-08 23:39:59 830
原创 postman学习
Tests(在这里做断言),图中断言的是响应状态码是不是100,可以选择右边的SNIPPETS选择需要的断言,这里的东西很好用。本接口的签名方法为,三个参数加在一起,然后进行MD5加密,不知道自己接口签名方法的宝子可以找对应的开发了解。表单参数,k=value,Body->x-www-form-urlencoded。文件上传接口,Body->form-data,key填写file选择file。key=json接口,Body->x-www-form-urlencoded。//获取接口响应json格式的数据。
2024-01-06 22:05:09 1020 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人