自动化测试
文章平均质量分 52
日日记
这个作者很懒,什么都没留下…
展开
-
用例找到请求超时的接口
用例找到请求超时的接口原创 2024-03-07 17:49:34 · 474 阅读 · 0 评论 -
【python自动化】使用关键字驱动实现appium自动化
在写app自动化用例时,尝试用了关键字驱动的框架记录一下自己对:1 关键字驱动指将用例步骤的操作封装为关键字,比如定位元素、点击元素、获取元素属性值、断言,这些都是操作关键字2 在excel中按照用例执行过程,填写操作关键字以及要执行操作指令需要用到的参数信息及操作后保存的对象名3 封装的代码框架,可以实现读取excel用例文件,拿到关键字操作及对应的参数4 然后按照关键字动作传入对应的参数,去执行1)将用例步骤抽象出关键字2)怎么执行excel中存放的字符串对应的方法。原创 2022-11-15 17:54:23 · 930 阅读 · 0 评论 -
【python自动化】简单关键字驱动
关键字驱动思想:将测试数据放在外部文件,通过外部文件存储关键字,python实现读取关键字,并按照关键字执行对应的操作原创 2022-11-14 19:44:40 · 770 阅读 · 0 评论 -
怎么解决自动化用例获取token失败报错
当用例因为网络原因或者调用接口太快导致接口返回错误,如获取token失败,用例进而也失败。如何解决这个问题?通过增加失败重试机制,这里的失败重试指当接口调用失败时就再次重试,重试3次方法一:通过手写while循环,判断循环次数和成功标记控制重试原创 2022-10-12 15:43:39 · 2434 阅读 · 0 评论 -
接口自动化-如多个接口都有一个重复字段,如何在一个用例对多个接口这个字段的合法性校验
【场景】有两个创建用户接口、两个更新用户接口,这4个接口参数都有name字段,name字段的限制是相同的》2.4 for循环遍历funcdict,根据用例场景拿到api函数名、以及对应的参数。在自动化验证时,可以使用回调函数将这几个接口的name参数验证在一个用例验证。1.在BaseTestcase中编写方法,实现根据传入函数去调用指定的函数。如上即可实现在一个用例里,覆盖对多个接口的同一个参数做非法校验,更高效一些。2.5 使用回调函数传入要调用的业务api和对应的参数去请求服务。原创 2022-09-16 17:06:57 · 444 阅读 · 0 评论 -
接口自动化测试用例层对接口参数的传递(二)
接口自动化测试中,往往测试的接口参数可能较多且测试场景复杂,比如测试参数必填、参数值非法,用例层如果直接定义接口的参数,存在大量重用数据且如果接口发生变更(删除一个参数、修改一个参数名)需要在用例层修改很多地方。如果json中的参数被替换后出现这种情况:json嵌套中有未被替换的变量需要删除,但是删除是会将“domain”这整个字段删除,这种嵌套的情况最好将这部分json单独在业务api中构造。注意参数中的authtoken、domainid要与yaml中${}中的参数名一致,才能成功替换,如果这样调用。原创 2022-09-16 16:36:37 · 892 阅读 · 0 评论 -
自动化用例的断言
assert断言assert断言遇到断言失败就会结束执行,case中后面的语句不会执行用法举例:assert 1==1str = "assert in string"assert str.__contains__("assertl")==Falseassert str.__contains__("assert")tlist = [1,2,3,4]assert tlist.__len__()>0assert tlist.__contains__(2)assert tlist.原创 2022-04-22 10:17:31 · 1133 阅读 · 0 评论 -
selenium如何绕开登录
selenium配置Chrome的调试模式1.chrome设置环境变量到path2.设定chrome调试模式 本地启动端口 chrome --remote-debugging-port=9222[在打开的调试浏览器打开你要测试的页面]3.启动Chrome driver加入option选项options = Options()options.debugger_address = '127.0.0.1:9222'self.driver= webdriver.Chrome(options=原创 2022-04-19 14:57:15 · 2542 阅读 · 1 评论 -
断言失败了怎么清理已创建的测试数据
场景一:校验创建用户接口返回体中的字段默认值是否符合预期(按照用例流程需要清理测试数据,但中间assert断言失败会导致用例停止,不会执行清理操作)用例组织是这样的:def test_case(self) #调用adduser接口创建用户 #assert校验response的返回体字段默认值是否符合预期 #调用deleteuser接口删除创建的用户如果assert校验失败,就会终止用例,deleteuser这一步不执行,导致测试数据未被清...原创 2021-11-30 14:32:43 · 1853 阅读 · 0 评论 -
接口自动化测试用例层对接口参数的传递(一)
【问题描述】 工程中post请求的body体因为较多参数是非必填参数,如果像get接口那样将post接口的body定义写在yaml文件中,case写起来就比较复杂,所以直接在case中传入接口的body参数对于创建用户接口来说,其不同的验证用例总是将其通用的body体进行某个变量的修改,然后调用进行验证之前的写法为:def test_adduser_invalidCase3(self):jsonbody ={"user":{"name":"auto"+get...原创 2021-11-26 18:09:49 · 657 阅读 · 0 评论 -
pytest.mark.parametrize 参数化执行怎么标注casename
使用ids=["casename1","casename2","casename3"]返回执行结果为用例名不直观,这个用例是校验创建用户,必填参数为空的情况,有两个用例,一个是name为空,一个是domain_id为空,在parametrize 中增加ids=["name为空","domain_id为空"]返回结果为:case名有中文会被显示为Unicode编码需要在项目根目录下创建conftest.py文件,添加下面代码:def pytest_collecti原创 2021-11-26 15:31:39 · 577 阅读 · 0 评论 -
pytest中的初始化操作执行顺序
conftest先执行->setup_module->setup_class->setup如果父类basecase、子类case都有setup,那不会执行父类的setup,如果需要在子类中执行父类的setup,需要显示指明super().setup(self)class Test_user(baseTestcase): def setup_class(self): print("\nTest_token1--setup_class") # .原创 2021-11-25 14:09:10 · 1100 阅读 · 0 评论 -
使用pytest.fixture解决接口自动化的token传参
问题描述:大部分的接口都需要在headers中传入token参数,原来的方式是在case文件的setup中调用gettoken方法拿到token,存入一个变量,然后在每个case中使用这个token变量 但后面发现测试用例会有如下场景:租户的token、用户的token、项目级别的token、**权限的token 如果都在setup中定义的话,需要定义这么多的token变量,而且不同的case类的setup都需要定义这么多token变量问题解决:...原创 2021-11-23 17:59:55 · 4826 阅读 · 0 评论 -
Jenkins配置allure生成报告失败
现象1:提示Allure Commandline找不到问题原因:allure目录配置不对,不要配置到bin目录现象2:构建成功了,但是查看allure报告无数据问题原因:从执行记录看报错说allure-results does not exists,没有配置allure-results目录解决办法:需要在工作空间目录创建allure-results文件夹2.创建allure-results文件夹后构建,不提示allure-results...原创 2021-05-11 17:02:14 · 1531 阅读 · 0 评论 -
Python 引用文件无法引用到
今天在学习HTTPRunner的引用Testcase ,发现怎么也引用不到在同一目录下的另一个py文件,几经折腾原来是因为父级目录文件名有-导致无法引用这里记录一下排查过程:1.确认引用文件目录是否有__init__.py空文件2.确认目录名称是否有空格、-修改目录名称,引用成功...原创 2021-05-10 14:27:39 · 1411 阅读 · 0 评论 -
pytest cmd下执行报错make sure your test modules/packages have valid Python names.
问题描述:case代码中使用pytest.main(['TestcasePairValue.py'])执行OK,但是在cmd下使用pytest TestcasePairValue.py执行报错如下ImportError while importing test module 'D:\code\apitest\testcase\TestcasePairValue.py'.Hint: make sure your test modules/packages have valid查了网上资料,说是.原创 2021-04-30 17:27:24 · 7858 阅读 · 1 评论