- 博客(50)
- 收藏
- 关注
原创 Django篇3-应用目录结构以及templates模版与html页
01—引言上一篇文章简单介绍了Django项目目录结构以及简单输出helloworld。但是输出是纯文本的内容,本篇介绍一下怎么打开一个html页面。02—新建应用与目录结构1、新建应用#...
2022-03-01 09:00:00 477
原创 Django篇2-输出helloworld
01—引言前面django篇文章介绍了环境搭建,本篇文章写一个简单的‘hello world’页面Django篇1-开发环境搭建环境:python/django/pycharm即可02—创...
2022-02-23 09:00:00 1335
原创 Django篇1-开发环境搭建
01—引言 首先先说Django,它是python中的web框架其一,Django是重量级选手中最有代表性的一位,许多成功的网站和APP都基于Django,类似于java中springb...
2021-07-02 09:00:00 295 1
原创 python中的匿名函数-2
01—引言忙碌了一周,又到了周末,大家周末愉快! 上一篇介绍了匿名函数lambda的基本使用,学会了可以使得代码更加的优雅,少得代码完成同样的功能。但是在实际运用过程中,lambda会结...
2021-06-19 09:00:00 161
原创 python中的匿名函数-1
01—引言匿名函数(Lambda)是指没有名字的函数,应用在需要一个函数但是又不想费神去命名这个函数的场合,通常这样的函数只需要使用一次。02—定义result = lambda [arg...
2021-06-18 09:00:00 179
原创 Cookie和Session鉴权
01—引言作为一个测试工程师,做接口自动化时,难免会遇到接口之间的关联以及登录接口等,所以了解cookie和session、token是必备的,下面这篇文章来给大家简单介绍Cookie和S...
2021-06-09 08:00:00 397
原创 pytest篇13-allure描述用例详解
01—引言很久没有更新文章了。上一次更新了allure报告中怎么修改环境参数信息,今天总结一下allure中描述用例的详细规则运用。02—用例描述使用方法参数值参数说明@allure.ep...
2021-05-15 09:00:00 728
原创 pytest篇12-allure-pytest(2)设置ENVIRONMENT
01—引言前面总结了allure-pytest的环境配置以及生成测试报告,但是在实际工作中生成的测试报告内容不仅仅是这些内容,后面会不断优化测试报告的内容。在上一篇生成的测试报告,是一个及...
2021-04-26 09:00:00 721 2
原创 pytest篇11-allure-pytest(1)
01—引言上一篇总结了pytest的用例标记功能,可以根据标记的名称来运行对应的Case,可以结合pytest.ini配置文件来实现。前面总结unittest篇时,生成测试报告是使用Bea...
2021-04-24 09:00:00 905 1
原创 pytest篇10-用例标记
01—引言上一篇总结了pytest的失败重试机制,这篇pytest的mark功能,mark翻译成中文译为《标记,做标记》,简单理解就是在用例上打一个标记,运行时,可以只运行打过标记的cas...
2021-04-21 09:00:00 452
原创 pytest篇9-失败重试机制
01—引言上一篇总结了pytest的skip和skipif的使用,skip是无条件的跳过用例,skip是当条件为真时,会跳过测试用例,可以灵活运用起来。当部分用例因为一些偶然因素运行失败时...
2021-04-16 09:00:00 2414 3
原创 pytest篇8-pytest之skip/skipif跳过用例
01—引言上一篇总结了pytest.fixture()中scope参数四种不同纬度的运用,今天我们一起总结一下pytest中用例的跳过。其实前面unittest单元测试框架中有总结skip...
2021-04-15 09:00:00 2844
原创 pytest篇7-pytest.fixture()中scope参数解析
01—引言上一篇我们学习了confest.py文件的简单使用,也有所了解。可以适用于一些前置操作的场景下使用。目录层级下也可以有多个contest.py。实际项目中,conftest文件实...
2021-04-08 09:00:00 2781
原创 pytest篇6-conftest.py模块
01—引言conftest.py是pytest特有的本地测试配置,既可以用来设置项目级别的Fixture、也可以用来导入外部插件,还可以用来指定钩子函数(后续慢慢总结)一个project下...
2021-04-07 09:00:00 557
原创 pytest篇5-参数化的实现
01—前言1、在unittest单元测试框架中,需要做参数化可以借助ddt模块来完成。在pytest单元测试框架中,可以用内置的pytest.mark.parametrize()完成参数化...
2021-04-01 09:00:00 397
原创 pytest篇4-Fixture熟练运用
前言前面的公众号学习了unittest的Fixture,其实pytest的Fixture大同小异,也非常类似。1、在做web自动化时,使用Fixture的一些前置或后置条件,非常有效,比如...
2021-03-29 09:00:00 191
原创 面试篇1-自动化篇
前言金三银四,最近自己也在面试,涉及了中大厂、普通中创型公司,总之不管自己要不要跳槽,在面试中可以发现自己的不足,以及可以了解市场的行情。以便更好的规划自己的职业生涯。一、接口自动化相关1...
2021-03-07 08:00:00 236
原创 Python知识总结
前言最近在学一些课程,需要依赖Python的基础,所以做了一些简单的知识总结,主要如下分为几个模块:1、数据类型2、函数与对象方法3、面向对象技术4、知识点汇总一、数据类型1、字符串带单引号、双引号、三引号可以认为都是一个字符串2、列表1、增:append、insert、extend方法用法含义append()alist.append(2021)在列表最后添加元素2021insert(index,value)alist.insert(3,2021)
2021-02-27 17:46:22 214
原创 pytest篇3-断言详解
前言1、上一篇pytest篇博客我们介绍了pytest的运行和用例的运行规则,今天准备分享一下pytest的断言。2、断言是用例中必不可少的一步骤,不然就缺失了自动化的意义。1、pytest断言在unitest单元测试框架中提供了丰富的断言方法,如assertEqual()、assertIn()、assertTrue()、assertIs()等。unittest断言详解可见我另外博客(链接)。pytest单元测试框架并没有提供专门的断言方法,而是直接使用Python的assert进行断言。
2021-02-07 15:58:28 3028
原创 pytest篇2-运行方式和用例执行规则
前言我们上一篇博客简单介绍了pytest框架,最后也了解了pytest的运行规则如下:1、测试文件必须以test开头或者以test结尾(test_* /*_test)2、测试类必须以Test开头,并且不能带有__init__方法3、测试函数也必须以test开头4、断言与unittest框架里面的不一样,需要使用python自带原生的断言,assert5、所有的包packege必须要有__init__.py文件这篇博客我们一起看一下pytest框架写的用例运行方式都有哪些1、目录层级及代码
2021-02-05 18:21:26 884 2
原创 linux篇1-查看日志的三种方式(匹配关键字筛选,时间段筛选)
在工作过程中,需要查看服务端的日志,掌握常用的命令是测试工程师必备的技能,快速的查看到日志,才能精准的定位缺陷的所在。这里博主收集了三种查看命令的方式。推荐大家使用第二种1、使用cat命令cat -n filename | grep "关键字"其他情况:cat filename | grep -C 10 '关键字' (显示日志里匹配字串那行以及前后10行)cat filename | grep -B 10 '关键字' (显示匹配字串及前10行)cat filename | grep -A 1
2021-02-04 17:13:46 15306
原创 pytest篇1-介绍与环境安装
前言Python测试框架之前一直用的是unittest+HTMLTestRunner,听到有人说pytest很好用,所以这段时间就看了看pytest文档,在这里做个记录。pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:简单灵活,容易上手支持参数化能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytes
2021-02-04 16:41:31 303 3
原创 算法篇2-一维数组的动态和
前言今日份算法篇,题目来自于力扣:题目:给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。例如输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。实
2021-02-01 17:42:29 171
原创 算法篇1 - 假设你有无限数量的邮票,面值分别为6角,7角,8角,请问你最大的不可支付邮资是多少元?
前言今天有一个朋友(手动艾特文彬)问我,这道题该怎么理解,该怎么去得出答案,研究了一波,并开始总结算法篇的博客;看题目博主感觉这是一道小学的数学题,但是可以使用python来解答。1、分析步骤1、我们假设每种邮票有N张,面值分别是6、7、8毛;2、此时总共的邮票就有3N张,我们通过各种排列组合来得到每种组合的面值和,可以存放一个列表;3、然后得到该列表,里面都是可以支付的邮资面值和;4、对该列表进行去重(为什么要去重?,因为组合出来的面值和肯定有重复的,比如6666四张六毛,888三张八毛,都
2021-01-29 16:33:20 706 5
原创 locust篇1-环境安装和简单运用
前言1、locust 翻译成中文的意思是‘蝗虫‘,官网称其为 “A modern load testing framework” ,是一款开源的性能测试工具,基于python开发的。2、做性能测试大家首选的肯定是jmeter工具,但是多学会一门工具的使用,对职业发展也是有帮助的。1、locust介绍官网文档链接 -> 点此1、locust 是一款易于使用,可编写脚本可扩展的性能测试工具2、locust 相对于jmeter有一款很友好的web界面2、locust安装2.1 使用pip
2021-01-27 14:55:14 349 1
原创 unittest篇8-参数化(paramunittest)
前言上一篇博客我们讲述ddt数据驱动,ddt能够使得输入M组数据,ddt框架会自动构造出M个测试用例。在unittest我们还有一个模块也可以实现它,就是paramunittest模块。也能实现和ddt一样的效果1、paramunittest安装pip install paramunittest2.使用2.1 代码import paramunittestimport unittestimport requests@paramunittest.parametrized( {"mo
2021-01-26 11:02:37 565
原创 Selenium篇11-WEB自动化中的去掉‘chrome正受到自动测试软件的控制‘控件和无头模式
前言上一篇selenium篇博客,我们学习了webdriver的键盘事件,是调用了Keys模块,键盘上每一个键都封装成了一个属性,我们可以直接使用属性即可。那么这一篇博客我们一起学习一下selenium去掉黄条,和无头模式。1、'chrome正受到自动测试软件的控制’控件大家做web自动化时,每一次启动浏览器上方都会展示一个控件,提示‘’chrome正受到自动测试软件的控制‘’如图所示:去掉它其实很简单,我们options = webdriver.ChromeOptions()options
2021-01-25 17:47:52 1433
原创 unittest篇7-数据驱动(ddt)
前言前面unittest篇,我们介绍了一些unittest框架的一些基本使用,包含TestCase编写、TestSuite、用例跳过、TestFixture、断言详解等等。在测试过程中,我们知道用例都是需要入参的,但实际过程中,我们的函数体是一样的,只有入参不一样。简单来说->以登录注册接口为例,登录账号入参,密码入参都是需要传入登录接口进行校验的。如果我们登录账号,密码有10种组合,按照传统用例思维,是不是需要写十个方法,并且会有很多重复的代码。那么我们可以通过unittest的ddt模块,进
2021-01-25 13:54:13 1838 2
原创 Selenium篇10-WEB自动化中的键盘事件
前言有一段时间没有更新Selenium相关的博客内容,今天趁着周末总结一篇关于Selenium自动化中的键盘事件。大家有时间可以看一下Selenium栏前面的相关内容。1、概念什么是键盘事件。Web自动化中的键盘事件指的是,让机器模拟人在键盘上完成的动作称为键盘事件。在Selenium中,提供了一个Keys来完成键盘事件。2、Keys源码# 导入Keys 模块from selenium.webdriver.common.keys import Keysfrom __future__ impo
2021-01-24 16:39:03 369
原创 unittest篇6-生成测试报告(BeautifulReport)
前言上一篇博客,我们介绍了如果跳过某些测试用例,或者当满足某些条件时,跳过或者执行一些测试用例。我们今天一起来学习一下执行完测试,我们如果有一封漂亮的测试报告呢?我们可以使用BeautifulReport模块。1、BeautifulReport安装1.1 可以通过github上进行下载1、地址:https://github.com/TesterlifeRaymond/BeautifulReport;2、下载方法:这就不用介绍了吧,直接copy 地址,在我们的cmd命令行里面 git clone
2021-01-22 17:09:35 4252 3
原创 unittest篇5-用例的跳过skip
1、前言上一篇博客,我们介绍了测试脚手架,也就是当我们在实际的测试中, 我们可能有些参数或者有些用例case只需要执行一次,那么我们也只能在用例执行一次,不然重复执行,会导致数据覆盖等情况。我们可以采取测试脚手架来完成对应的操作。今天这篇博客我们来介绍一下,用例的跳过。2、跳过在运行测试中,有时需要直接跳过某些测试用例,或者当某些测试用例符合某个条件时跳过测试,又或者直接将测试用例设置失败状态。unittest提供了一些实现这些需求的装饰器。2.1 unittest.skip(reason)1、
2021-01-21 16:14:25 957 5
原创 unittest篇4-测试脚手架(TestFixture)详解
1、前言上一篇博客一起学习了测试套件(TestSuite),怎么将TestCase加载到TestSuite中介绍了四种方法,大家一定要掌握通过用例所在的路径进行加载。2、TestFixture2.1 简介我们可以把TestFixture看作夹心饼干外层的两片饼干,这两片饼干就是setUp/tearDown,中间的奶油就是测试用例。除此之外,unittest还提供了更大范围的Fixture,如测试类、测试模块的Fixture。2.2 使用2.2.1 用例级别-setUp/tearDown1、s
2021-01-19 20:06:12 3266 2
原创 Selenium篇9-WEB自动化中的鼠标事件
前言Selenium篇上次分享了窗口切换,iframe切换,alert弹窗切换。大家在此切换的时候,最好加上显示等待,能够提高代码的稳定性。今天我们一起学习鼠标事件。1、什么是鼠标事件?简单而言就是让电脑模拟鼠标来完成操作的一段程序可以称为鼠标事件。对比鼠标事件,肯定还会有键盘事件(后续会进行分享)2、实现python中actionchains是selenium里面专门处理鼠标相关的操作如:鼠标移动,鼠标按钮操作(双击,右击,左击),按键和上下文菜单(鼠标右键)交互等等。from seleniu
2021-01-18 19:50:21 543
原创 unittest篇3-测试套件(TestSuite)详解
1、前言1、前面unittest篇博客中,有提到怎么去编写一个简单的TestCase,那么多个用例(TestCase)集合在一起就是TestSuite。2、测试套件就是用来负责组织测试运行的。2、实现2.1 创建一个测试套件suite = suite=unittest.TestSuite()2.2 加载case到Suite中2.2.1 通过单条case进行加载到测试套件中测试用例以上篇博客的测试用例为例import unittestclass TestCaseDemo(unittes
2021-01-18 14:06:18 7765 4
原创 Selenium篇8-WEB自动化中的alert弹窗处理
前言上一篇博客介绍了Web自动化中的窗口切换处理(句柄切换),可以通过句柄切换至一个标签页。那么我们今天一起来学习一下,怎么切换alert弹窗。alert弹窗是最简单的一种切换。1、什么是alert弹窗?1、alert方法有一个参数,就是用户想弹出的内容,弹出框很简单,就一个显示功能。你可以点击确认关闭这个弹出框。2、alert弹窗可以详细如下图所示。2、怎么切换1、切换至alert弹窗# 由于同一时刻只会有一个alert弹窗,后面可以不加()my_alert = driver.swi
2021-01-16 19:28:44 2452
原创 Selenium篇7-WEB自动化中窗口切换
前言上一篇博客介绍了iframe的切换,接下来还有两种比较重要的切换,窗口切换以及alert切换。今天我们一起学习一下窗口切换1、什么时候需要切换窗口?在页面上操作某些元素时,会触发新的标签页的打开,需要定位新的标签页里面的元素或操作,那么我们就需要切换窗口至新的标签页,才能定位到目标元素。2、怎么知道这个窗口的句柄是多少?1、每个窗口都会有自己一个独特的句柄,大家可以认为是窗口的唯一标识id,叫做句柄;2、获取所有的句柄...
2021-01-15 15:12:08 547
原创 unittest篇2-断言详解
前言我们写case的时候,需要写断言,我们使用unittest框架时,也需要了解它都有一些什么断言,才能很快的进行校验。1、测试过程中为什么需要做断言,断言是机器判定case是否通过的标准,检验预期结果与实际结果是否统一的标准。2、在上一篇unittest篇1-简介的博客中,写了一个简单的例子,例子中使用了self.assertEqual(),做断言,大家可以看看那篇博客。3、unittest有自己单独的断言,与python自带的断言使用方法不一样。unittest断言unittest单元测
2021-01-14 18:30:43 1696 2
原创 Selenium篇6-WEB自动化中iframe切换
1、切换iframe1.1 什么是iframeiframe,又叫浮动帧标记,是内嵌的网页元素,可以将一个html文件嵌入到另一个html文件中显示。1.2 怎么知道我要定位的元素在iframe里面1、首先在页面elments中查看需要定位的元素层级2、如果该元素的父级或者祖父级别有iframe标签,那么需要定位的元素就在iframe中1.3 切换至iframe总共有四种常用的方法1、通过index 索引切入;2、通过iframe框的name属性切入;3、通过iframe的Eleme
2021-01-14 11:06:32 1705
原创 unittest篇1-简介
1、unittest简介官网文档https://docs.python.org/3/library/unittest.html 添加链接描述1、单元测试框架是受到 JUnit 的启发,与其他语言中的主流单元测试框架有着相似的风格。它支持测试自动化,配置共享和关机代码测试。支持将测试样例聚合到测试集中,并将测试与报告框架独立。2、熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,对应python中单元测试框架为unittest和pytest,等后面有空,再分享pytest框架。3、u
2021-01-13 15:56:12 481
原创 Selenium篇5-WEB自动化中三种等待方式的灵活使用
只要耐心看完,三种等待方式如何使用,什么场景使用哪种等待方式一定能够明白!!前言1、为什么需要使用等待?在使用元素定位时,client写的代码是按顺序执行的,因网络、前端页面性能加载、硬件设备等原因导致元素加载过慢时,元素还未加载出来,那么去执行定位元素的代码,肯定是会报异常,提示元素找不到。所以我们需要在代码层加等待;有些元素能定位到,但是在一定的时间内,不能操作(点击);调试过程中,加等待可以使得过程相对显而易见;2、需要弄清楚强制等待和智能等待的区别以及使用1、强制等待1.1 用法
2021-01-13 11:18:44 543 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人