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

论文明星个人网站建设变装 wordpress

论文明星个人网站建设,变装 wordpress,专业百度seo排名优化,如何做英文网站的中文网tep是一款测试工具#xff0c;在pytest测试框架基础上集成了第三方包#xff0c;提供项目脚手架#xff0c;帮助以写Python代码方式#xff0c;快速实现自动化项目落地。 在tep项目中#xff0c;自动化测试用例都是放到tests目录下的#xff0c;每个.py文件相互独立在pytest测试框架基础上集成了第三方包提供项目脚手架帮助以写Python代码方式快速实现自动化项目落地。 在tep项目中自动化测试用例都是放到tests目录下的每个.py文件相互独立没有依赖1个文件即1条用例彼此分离。 虽然用例也能相互引用但是除非万不得已一般不建议这么做牵一发动全身后期维护困难。 用例的代码编写思路是从上往下的和pytest/unittest/script常规写法无异不会有学习成本一般也不会有问题。有成本有问题的可能是环境变量和fixtures因为tep做了封装提供了依赖注入的共享方式fixture又是pytest较难理解的知识点所以有必要通过本文来讲讲tep环境变量、fixtures、用例三者之间的关系帮助理解以便更灵活顺手的借助tep实现pytest自动化项目。 假如不用环境变量和fixtures 假如不用环境变量和fixtures是完全可以的比如在tests下新建脚本login_test.py from tep.client import requestdef test():response request(post,urlhttps://qa.com/api/users/login,headers{Content-Type: application/json},json{username: admin,password: 123456,})assert response.status_code 400 请求接口https://qa.com/api/users/login断言响应状态码小于400。问题来了url固定假如需要切换两个环境qa和release该怎么办 参数化 无论是做自动化测试还是性能测试都会接触到参数化这个词。它是指把代码中的固定数据硬编码定义成变量让每次运行时数据不一样固定数据变为动态数据。动态数据的来源是变量、数据库、外部文件等。动态数据的类型一般是常量的字符串也可以是函数比如JMeter的函数助手也可以是依赖注入比如pytest的fixture。 依赖注入的fixture “依赖注入是控制反转IoC Inversion of Control的一种技术形式”这句话出自维基百科我也不知道什么意思画个图简单表达下 意思是给client一个injectorclient不需要做什么就能用到service。 pytest的fixture实现了依赖注入允许我们在不修改测试代码的情况下引入fixture来额外添加一些东东。 对于url来说域名是需要做参数化的不同环境域名不同所以tep把它做成了fixture通过函数参数引入 from tep.client import request from tep.fixture import *def test(url): # 引入fixtureresponse request(post,urlurl(/api/users/login),headers{Content-Type: application/json},json{username: admin,password: 123456,})assert response.status_code 400 tep.fixture.url定义如下 pytest.fixture(scopesession) def url(env_vars):def domain_and_uri(uri):if not uri.startswith(/):uri / urireturn env_vars.domain urireturn domain_and_uri 如果一眼就看懂了恭喜你如果一眼就看懵了没关系。我会花功夫把它讲明白它很关键 把fixture当变量看 虽然从定义上看fixture是用def关键字定义的函数但是理解上把它看做变量就可以了。比如 import pytestpytest.fixture def name():return dongfanger 一般函数的用法是函数名加小括号通过name()才能得到dongfanger。fixture不一样以上定义可以理解为 name dongfanger 把dongfanger赋值给namefixture名 return值。通过变量name就得到dongfanger了。 既然是变量那么就能随便赋值str、function、class、object都行。比如在fixture内部定义个函数 import pytestpytest.fixture def who():def get_name():return dongfangerreturn get_name 理解为把函数名get_name赋值给fixture名变量 who get_name get_name是个函数名需要加小括号get_name()才能得到dongfanger。who也必须通过who()才能得到dongfanger。再看tep.fixture.url是不是清楚些了 pytest.fixture(scopesession) def url(env_vars):def domain_and_uri(uri):if not uri.startswith(/):uri / urireturn env_vars.domain urireturn domain_and_uri 理解为把函数名domain_and_uri赋值给fixture名变量 url domain_and_uri 使用时通过url(/api)得到域名和uri拼接后的结果。 第2行的def url(env_vars):也有一个参数env_vars接下来继续解释。 fixture参数是其他fixture fixture的参数只能是其他fixture。比如 import pytestpytest.fixture def chinese_name():return 东方erpytest.fixture def english_name(chinese_name):return dongfanger 调用english_namepytest会先执行参数里的其他fixture chinese_name然后执行自己english_name。 如果把tep.fixture.url拆成两步来看就很清晰了第一步 pytest.fixture(scopesession) def url(env_vars):func Nonereturn func 第二步 pytest.fixture(scopesession) def url(env_vars):func Nonedef domain_and_uri(uri):if not uri.startswith(/):uri / urireturn env_vars.domain urifunc domain_and_urireturn func 环境变量 tep.fixture.url的参数是另外一个fixture env_vars 环境变量它的定义如下 from tep.fixture import *pytest.fixture(scopesession) def env_vars(config):class Clazz(TepVars):env config[env]Variables define start# Environment and variablesmapping {qa: {domain: https://qa.com,},release: {domain: https://release.com,}# Add your environment and variables}# Define properties for auto displaydomain mapping[env][domain]Variables define endreturn Clazz() 只看中间注释Variables define start到Variables define end部分即可。url参数化的域名就在这里mapping字典建立了环境和变量之间的映射根据不同的环境key获取不同的变量value。 config fixture的作用是读取conf.yaml文件里面的配置。 参数化的方式很多JMeter提供了4种参数化方式tep的fixture env_vars借鉴了JMeter的用户自定义变量 env_vars.put()和env_vars.get()借鉴了JMeter BeanShell的vars.put()和vars.get()。 实例测试多个网址 讲到最后形成了思路通过实际的例子看看环境变量、fixtures、用例是怎么用起来的加深下印象。假如qa环境有2个网址学校端和机构端脚本都需要用到。 第一步修改env_vars编辑fixture_env_vars.py Variables define start# Environment and variablesmapping {qa: {domain: https://qa.com,domain_school: https://school.qa.com, # 新增domain_org: https://org.qa.com # 新增},release: {domain: https://release.com,domain_school: https://school.release.com # 新增domain_org: https://org.release.com # 新增}# Add your environment and variables}# Define properties for auto displaydomain mapping[env][domain]domain_school mapping[env][domain_school] # 新增domain_org mapping[env][domain_org] # 新增Variables define end 添加了6行代码定义了env_vars.domain_school和env_vars.domain_org。 第二步定义fixtures新建fixture_url.py pytest.fixture(scopesession) def url_school(env_vars):def domain_and_uri(uri):if not uri.startswith(/):uri / urireturn env_vars.domain_school urireturn domain_and_uripytest.fixture(scopesession) def url_org(env_vars):def domain_and_uri(uri):if not uri.startswith(/):uri / urireturn env_vars.domain_org urireturn domain_and_uri 参照tep.fixture.url修改env_vars.domain为env_vars.domain_school和env_vars.domain_org新增了2个fixture url_school和url_org。 更进一步也许会定义fixture login_school和login_org灵活选择。 小结 本文循序渐进的讲解了tep环境变量、fixtures和用例之间的关系重点对tep.fixture.url进行了解释只要理解了它整体关系就很清楚了。之所以要用fixture原因一是多人协作共享我们需要用别人写好的函数复用返回值有些同学习惯定义函数参数参数不变还好万一哪天改了别人引用的用例会全部报错fixture很好的限制了这一点它默认是不能传参的虽然可以通过定义内部函数来实现传参但是并不推荐这么做宁愿增加冗余代码定义多个fixture也比代码耦合度高好一些。原因二是import的问题pytest会自动查找conftest.py里的fixturetep会进一步自动查找fixtures下的fixture导入到conftest.py不需要import就能使用减少了import代码避免了可能会出现的循环导入问题。 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 软件测试面试小程序 被百万人刷爆的软件测试题库谁用谁知道全网最全面试刷题小程序手机就可以刷题地铁上公交上卷起来 涵盖以下这些面试题板块 1、软件测试基础理论 2、web,app接口功能测试 3、网络 4、数据库 5、linux 6、web,app接口自动化 7、性能测试 8、编程基础9、hr面试题 10、开放性测试题11、安全测试12、计算机基础 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
http://www.sadfv.cn/news/367596/

相关文章:

  • 中国建设银行e路通网站广东省住房和城乡建设厅
  • 校园网站建设的需求分析网站申请备案要多久
  • 网站开发信息发布昆明seocn整站优化
  • 河北辛集市城乡建设管理局网站wordpress如何修改导航样式
  • 站长工具seo优化系统有个能写文章做任务的网站
  • 宿州网站开发wordpress如何加跳转
  • 杭州市萧山区市场建设开发网站大宗商品交易平台排名
  • 南昌建设企业网站seo关键词优化报价
  • 临海如何制作公司网站框架自己注册公司有什么弊端
  • python采集数据wordpress网页seo是什么意思
  • 可视化的网站开发工具网站价值排行
  • 上海快速建设网站公司百度移动首页
  • 网站开发公司怎么能接到单子dw课设做网站
  • 用模板建商场购物网站jae安装wordpress
  • 外贸自建站收款通道优化培训课程
  • 网站建设 市场规模faq页面设计模板
  • 有没有便宜做网站的 我要做个dw做网站时怎么在图片上加字
  • 商城网站规划烟台网站备案
  • 深圳制作网站培训机构厂房建设公司哪家好
  • 如何做网站推广优化官网建设知识
  • 企业网站特色建设怎样做网站制作团队
  • 甘肃建设住房厅网站俄文网站建设 俄文网站设计
  • 交换友情链接的目的seo点击
  • 建网站需要多少钱和什么条件python 手机网站开发
  • 做聊天网站的视频教程怎么申请自己的网络平台
  • 网站建设公司讯息成都包装设计
  • 甘肃省水利厅引洮工程建设管理局网站河南省新闻出版学校
  • 北京赵公口网站建设深圳十大建筑工程公司排行榜
  • 象刀设计网站电脑自助建站
  • h5创建网站长沙做网站的费用