当前位置: 首页 > news >正文

如何对一个网站进行seo个人域名怎么做网站

如何对一个网站进行seo,个人域名怎么做网站,wordpress使用对象存储,外贸网站开发推广一、什么是pytest 单元测试框架#xff0c;unittest#xff08;python自带的#xff09;#xff0c;pytest#xff08;第三方库#xff09;。 用于编写测试用例、收集用例、执行用例、生成测试结果文件#xff08;html、xml#xff09; 1.1、安装pytest pip instal…一、什么是pytest 单元测试框架unittestpython自带的pytest第三方库。 用于编写测试用例、收集用例、执行用例、生成测试结果文件html、xml 1.1、安装pytest pip install pytest 1.2、导入 import pytest 二、步骤 2.1、TestCase(测试用例) 2.1.1、创建测试类       1类名要以Test开头 class TestData: 2.1.2、测试用例函数       1可以直接用函数、类的形式       2函数名必须是test_开头       3执行顺序按照从上到下的代码顺序执行 def test_data():        #测试函数print(test_data)class TestData:def test_hello(self):    #测试函数print(test_hello) 2.1.3、前置后置fixture 前置环境准备、数据准备后置清理工作、数据清理 pytest的fixture有2种实现方式 2.1.3.1、xunit-style 跟unittest框架的机制非常相似即setup/teardown系列 1、测试函数/方法级别每一个测试函数都会执行的前置和后置。 1测试类内部的测试方法 前置函数名称setup_method 后置函数名称teardown_method 2模块下的测试函数 前置函数名称setup_function 后置函数名称teardown_function 2、测试类级别一个测试类只执行一次前置和后置。 前置函数名称setup_class 后置函数名称teardown_class 注意用classmethod装饰 3、测试模块级别一个测试模块只执行一次前置和后置。 前置函数名称setup_module 后置函数名称teardown_module from selenium import webdriver from time import sleep from random import randintdef setup_module():print( 模块级的 setup 操作 )def teardown_module():print( 模块级的 teardown 操作 )def test_random():assert randint(1, 5) 3class TestWeb:classmethoddef setup_class(cls):print( 测试类级的 setup 操作 )classmethoddef teardown_class(cls):print( 测试类级的 teardown 操作 )def setup_method(self):print( 测试用例级的 setup 操作 )self.driver webdriver.Chrome()def teardown_method(self):print( 测试用例级的 teardown 操作 )self.driver.quit()def test_search(self):self.driver.get(https://www.baidu.com/)self.driver.find_element_by_id(kw).send_keys(柠檬班)self.driver.find_element_by_id(su).click()sleep(1) 2.1.3.2、fixture机制 通过pytest.fixture装饰器来定义fixture 1、fixture定义 1fixture通过函数实现 2使用pytest.fixture进行装饰 3前置和后置都放在同一个函数当中通过yeild关键字区分前置和后置yeild前面的为前置yeild后面的为后置 import pytestpytest.fixture def init():print(用例执行之前执行的代码) # 前置代码 yieldprint(用例执行之后执行的代码) # 后置代码pytest.fixture def init2():print(用例执行之前执行的代码) # 只有用例执行之前的前置准备代码pytest.fixture def init3():yieldprint(用例执行之后执行的代码) # 只有用例执行之后的后置清理代码 4fixture有4个作用域测试会话(session)、测试模块(module)、测试类(class)、测试用例(function) 设置fixture的作用域通过pytest.fixture(scope作用域)来设置。默认情况下scopefunction import pytest# 没有设置scope默认为测试函数级别。即调用此fixture的测试类/模块/函数下每个测试函数都会执行一次这个fixture pytest.fixture def init():print(用例执行之前执行的代码) # 前置代码yieldprint(用例执行之后执行的代码) # 后置代码# 设置scope为class。调用此fixture的测试类下只执行一次这个fixture. pytest.fixture(scopeclass) def init2():print(用例执行之前执行的代码) # 只有用例执行之前的前置准备代码# 设置scope为session。autouse表示自动使用。 # 那么在pytest收集用例后开始执行用例之前会自动化执行这个fixture当中的前置代码 # 当所有用例执行完成之后自动化执行这个fixture的后置代码。 pytest.fixture(scopesession,autouseTrue) def init3():yieldprint(用例执行之后执行的代码) # 只有用例执行之后的后置清理代 5fixture的返回值设置yeild 返回值 如果前置准备工作当中有变量要传递给测试用例去使用的话那么就需要返回这个变量可以有多个返回值返回值是个元组。 yeild 返回值,返回值2,返回值3     yield mysql_obj,True,123 2、fixture调用 2.1、自动调用定义fixture有个参数autouse默认autouseFalse 自动调用时所有的测试函数都会调用一次所以只有session作用域时才适用。 import pytestpytest.fixture(autouseTrue) #自动调用 def init():print(我是前置准备工作)yieldprint(***我是后置清理工作***)pytest.fixture(scopeclass) def init_class():print(我是测试类 前置准备工作)yieldprint(***我是测试类 后置清理工作***)def test_hello():print(hello pytest!!)class Test_demo:def test_bey(self):print(bey pytest!!) 2.2、主动调用测试函数/测试类上加上pytest.mark.usefixtures(fixture的函数名称)可以调用多个。 当调用两个同级别的fixture函数时按就近原则调用 1无需接收fixture返回值 import pytest from random import randint#测试类级别 pytest.fixture(scopeclass) def init_class():print(我是 测试类 前置准备工作)mysql_obj fixture要返回出去的数据库对象yield mysql_obj,True,123 # 返回一个变量/对象print(***我是 测试类 后置清理工作***)# 测试函数级别 pytest.fixture() def init():print(我是前置准备工作)yieldprint(***我是后置清理工作***)# 测试函数级别 pytest.fixture() def init2():print(我是前置准备工作2)yieldprint(***我是后置清理工作2***)pytest.mark.usefixtures(init) #去执行名为init的fixture函数 pytest.mark.usefixtures(init2) #当调用两个同级别的fixture函数时就近原则先调用init2再调用init def test_hello():print(hello pytest!!)def test_demo(): #无前置后置print(hello world)pytest.mark.usefixtures(init_class) #执行名为init_class测试类级别的前置后置 pytest.mark.usefixtures(init) #当调用两个不同级别的fixture函数时先调用init_class,再每个函数调用init class TestDemo:def test_random(self):assert randint(3, 3) 3def test_abc(self):assert Truepytest.mark.usefixtures(init2) #当类内部函数有调用时就近原则先调用init2再调用initdef test_bey(self):print(bey pytest!!) 2要接收fixture返回值fixture的函数名作为用例的参数相当于fixture函数名 fixture调用的返回值 当fixture函数名作为测试用例参数时在执行用例时会自动寻找该函数的fixture并执行。 pspytest当中的测试用例如果有参数分为2种 1、fixture的名字 def test_random(self,init_class)pass 2、参数化要传的参数 pytest.mark.parametrize(case,datas) def test_read_datas(case):pass import pytest from random import randint# 测试类级别 pytest.fixture(scopeclass) def init_class():print(我是 测试类 前置准备工作)mysql_obj fixture要返回出去的数据库对象yield mysql_obj,True,123 # 返回一个变量/对象print(***我是 测试类 后置清理工作***)#pytest.mark.usefixtures(init_class) # 当fixture函数名作为测试用例参数时在执行用例时会自动寻找该函数名并执行所以这个可以不写 class TestDemo2:def test_random(self,init_class): # fixture的名字作为用例的参数相当于fixture名字 fixture调用的返回值mysql_obj, bool_obj, int_obj init_classprint(从fixture当中接收的变量为{}.format(init_class))assert randint(1, 5) 3def test_abc(self):assert True 2.1.3.3、conftest.py共享机制 1、共享实现 1在项目根目录下创建一个conftest.py文件。 2文件名必须是conftest.py大小写敏感不可改名字。 3conftest.py当中可以编写多个fixture 4在测试用例文件当中不需要引入conftest.py文件。直接调用fixture的函数名会自动去conftest.py当中查找的。 2、conftest.py层级作用域 conftest.py在项目根目录下则项目下的所有测试用例均可使用conftest.py中定义的fixture。即项目根目录下的conftest.py作用域是整个项目。 根目录下的conftest.py里的fixture无论项目下的哪个用例都可以使用。 子目录day3-login下的conftest.py里的fixture只有day3-login下的用例可以使用。 子目录day3-register下的conftest.py里的fixture只有day3-register下的用例可以使用。 测试用例在执行时调用fixture的顺序按 就近原则 调用。 测试用例文件中的fixture 当前目录中的fixture 上级目录中的fixture 根目录中的fixture 2.1.3.4、fixture嵌套 嵌套使用即一个fixture可以做另外一个fixture的参数自动调用参数的fixture。 注意由于参数里的fixture要先执行所以参数里的fixture的作用域 fixture的作用域。 pytest.fixture def init_class():print( %%%% 我是 day3-login包下test_random模块的测试类 前置准备工作 %%%% )yieldprint( %%%% 我是 day3-login包下test_random模块的测试类 后置清理工作 %%%% )pytest.fixture def init_case(init_class):      #init_class作为init_case的参数当用例调用init_case时init_case会自动调用init_classprint(测试用例级别 的前置)print()yieldprint(测试用例级别 的后置)print(用例 完结) 2.1.3.5、session 和 module 级别的 fixture 1session 级别的 fixture 从 pytest 开始收集用例到执行用例完成的整个过程为一次会话可以设置 autouseTrue  import pytestpytest.fixture(scopesession,autouseTrue) def fix_session():print( session级别的前置 只执行1次 )yield Trueprint( session级别的后置 只执行1次 ) 2module 级别的 fixture module 是指测试 py 文件夹具夹的是整个 test_*.py 文件里的测试用例。 在 test_*.py 里哪一行代码调用了 module 级别的 fixture那么夹的就是那行代码之后的所有测试用例。 import pytestpytest.fixture(scopemodule) def fix_module():print( module级别的 前置 )yieldprint( module级别的 后置 ) 2.1.4、断言 将预期结果与实际结果进行对比       assert 表达式(True表示断言为真,False表示断言失败) assert ab 2.2、用例收集自动收集 1pytest自动收集用例规则在当前文件所在的目录下收集文件名为test_*.py或*_test.py的测试文件中以test_开头的测试用例或Test开头的测试类。 2pytest.main()以当前文件所在的目录下收集用例并执行。 pytest.main([-s,-v]) 3用例分类执行 pytest.main([day1/test_case1.py])      #只执行day1目录下test_case1.py文件的测试用例 2.3、TestRunner用例执行 1需要配置执行器FileSettingsToolsPython Integrated ToolsDefault test runnerpytest     2执行顺序测试文件顺序按ASCII码文件内部测试用例按代码顺序执行 3若py文件执行过一次后会保留上一次执行的方式需要清除上一次执行记录。右上角——Edit Configurations——Remove掉该py文件。 2.4、生成测试报告 2.4.1、生成JunitXML 格式的测试报告 命令--junitxmlpath      2.4.2、生成result log格式的测试报告 命令--resultlogreport\log.txt      2.4.3、生成Html格式的测试报告  1安装pytest-html插件 pip install pytest-html 2在pytest.main()的参数当中添加--html报告路径 pytest.main([-s,-v,--htmlreport.html])      #生成html格式的测试报告 2.4.4、生成allure的测试文件  2.4.4.1、allure是依据测试结果文件呈现更好看的更多维度的测试报告。       注意它不执行用例也不生成测试结果文件。所以要使用allure的时候一定要先生成测试结果文件。allure需要依赖测试框架执行测试用例后根据测试结果再生成测试报告。 2.4.4.2、allure的使用 1、安装allure命令行工具           1下载allure安装包。下载地址https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/ 2下载完成之后解压到任意目录           3配置环境变量allure的bin目录。比如D:\allure-2.12.1\bin 4在cmd当中执行allure命令不报错即allure安装成功。 2、pytest在执行用例之后要生成allure可以识别的测试结果文件。           1安装插件 pip install allure-pytest 2在pytest.main()的参数当中添加--alluredirallure生成的文件目录手动创建一个 pytest.main([-s,-v,--alluredirallure_file]) pytest.main([--alluredirallure_file,--clean-alluredir])      #每次运行前清除allure_file中的文件为防止数据重复 3、使用allure去解析2中的测试结果文件再呈现最终的测试报告           1在cmd当中首先跳转到rootdir下面 2在cmd当中执行命令allure serve 2中的测试结果文件目录 2.5、参数化数据驱动 1、pytest.mark.parametrize(参数名,列表数据) datas{api:login,url:http://api.lemoban.com/futureloan/login,api:register,url:http://api.lemoban.com/futureloan/register,api:recharge,url:http://api.lemoban.com/futureloan/recharge,api:withdraw,url:http://api.lemoban.com/futureloan/withdraw}pytest.mark.parametrize(case,datas) def test_read_datas(case):pass 2、组合参数化多组参数依次组合。       使用多个pytest.mark.parametrize #示例用例有4个0,2/0,3/1,2/1,3 迪卡尔积 pytest.mark.parametrize(x, [0, 1]) pytest.mark.parametrize(y, [2, 3]) def test_foo(x, y):pass 2.6、重试机制rerun 1安装插件pytest-rerunfailures pip install pytest-rerunfailures 2命令 pytest --reruns 次数 pytest --reruns-delay  重运行次数之间的间隔时间以秒为单位 pytest.main([--reruns,2,--reruns-delay,5]) 2.7、筛选用例mark一下 当我们想只运行诸多py文件当中的部分用例需要过滤用例时可以使用pytest.mark一下。 1注册标签名 通过pytest.ini配置文件注册。在pytest.ini文件当中 [pytest]   # 固定的section名 markers # 固定的option名称 标签名1: 标签名的说明内容。 标签名2 标签名N 2在测试用例/测试类中给用例打标记(只能使用已注册的标记名) 在测试用例的前面加上pytest.mark.已注册标签名 3运行时根据用例标签过滤(-m 标签名) 调用pytest.main()函数将运行时的参数以列表传进去同样也可以达到命令行运行的效果。可以使用逻辑运算符。 pytest.main([-m,demo])      #执行标签为demo的测试用例 pytest.main([-m not demo])    #执行标签不是demo的测试用例 pytest.main([-m demo and test])  #执行标签是demo又是test的测试用例 【已更新】B站讲的最详细的Python接口自动化测试实战教程全集实战最新版 》以及配套的接口文档/项目实战【网盘资源】需要的朋友可以下方视频的置顶评论获取。肯定会给你带来帮助和方向。 【已更新】B站讲的最详细的Python接口自动化测试实战教程全集实战最新版
http://www.yingshimen.cn/news/48190/

相关文章:

  • 建一个网站怎么赚钱创建网站宝典
  • 网站后台更新的内容出不来众v创业营网站开发
  • 静态网站开发嘉兴市城市建设门户网站
  • 仙游县建设局网站网站空间制作
  • asp.net做网站后台wordpress迁移到vps
  • 网站开发面板北京丰台做网站
  • 苏州培训网站建设浪漫花语百科网网页制作素材
  • 手机淘宝客网站怎么做的微信网站建设 知乎
  • 在青岛建网站深圳易捷网站建设
  • 网站体验调查问卷怎么做wordpress如何安装百度地图
  • 手机淘宝网页版登陆入口免费关键词优化工具
  • 长沙理财网站建设网站建设排名软件
  • 微信网站设计欣赏seo教程pdf
  • 网站安全证书怎么申请做网络写手最好进那个网站
  • 网站建设放在什么科目莱芜网站建设电话
  • 网站标题改动优秀的品牌策划案例
  • 湖南智能网站建设推荐网站不显示index.html
  • jsp网站空间自己做公众号和小说网站推广
  • 购物网站开发设计思路网站后台页面进不去
  • 树莓派wordpress frp昆明做网站优化公司
  • 如果在工商局网站上做股权质押服务周到的响应式网站
  • 做商城网站哪个好wordpress log文件大小
  • 南京网站建设苏icp备腾讯企点怎么改名字
  • 精品课程网站开发云南省建设厅网站发文
  • 网站设计师认证培训网络营销是啥意思
  • 制作购物网站教程legenda wordpress
  • 用商标做网站名字wordpress添加统计代码
  • 网站网页文案怎么写制作照片
  • 达建网站威海 网站开发
  • 合肥做网站工作室德州 网站建设