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

湖州市网站建设_网站建设公司_Java_seo优化

网站建设费长期待摊费用,24小时通过网站备案,wordpress共享插件,微信营销前言#xff1a; 接口自动化是指模拟程序接口层面的自动化#xff0c;由于接口不易变更#xff0c;维护成本更小#xff0c;所以深受各大公司的喜爱。 接口自动化包含2个部分#xff0c;功能性的接口自动化测试和并发接口自动化测试。 本次文章着重介绍第一种#xff0c…前言 接口自动化是指模拟程序接口层面的自动化由于接口不易变更维护成本更小所以深受各大公司的喜爱。 接口自动化包含2个部分功能性的接口自动化测试和并发接口自动化测试。 本次文章着重介绍第一种功能性的接口自动化框架。 一、简单介绍 环境Mac、Python 3PytestAllureRequest 流程读取Yaml测试数据-生成测试用例-执行测试用例-生成Allure报告 模块类的设计说明: Request.py 封装request方法可以支持多协议扩展get\post\put Config.py 读取配置文件包括不同环境的配置email相关配置 Log.py 封装记录log方法分为debug、info、warning、error、critical Email.py 封装smtplib方法运行结果发送邮件通知 Assert.py 封装assert方法 run.py 核心代码。定义并执行用例集生成报告 Yaml测试数据格式如下 --- Basic:dec: 基础设置parameters:-url: /settings/basic.jsondata: slugda1677475c27header: {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko)\Chrome/67.0.3396.99 Safari/537.36,Content-Type: keep-alive} 二、代码结构与框架流程 1、代码结构见下图 2、框架流程见下图 三、详细功能和使用说明 1、定义配置文件config.ini 该文件中区分测试环境[private_debug]和正式环境[online_release]分别定义相关配置项[mail]部分为邮件相关配置项 # http接口测试框架配置信息[private_debug] # debug测试服务 tester your name environment debug versionCode your version host www.jianshu.com loginHost /Login loginInfo emailwanguser.compassword123456[online_release] # release正式服务 tester your name environment release versionCode v1.0 host www.jianshu.com loginHost /Login loginInfo emailwanguser.compassword123456[mail] #发送邮件信息 smtpserver smtp.163.com sender test1163.com receiver wanguser.com username wanguser.com password 123456 2、读取yaml测试数据后封装 yaml测试数据例子见第一节一条接口可定义多条case数据get_parameter为已封装好的读取yaml数据方法循环读取后将多条case数据存在list中。 class Basic:params get_parameter(Basic)url []data []header []for i in range(0, len(params)):url.append(params[i][url])data.append(params[i][data])header.append(params[i][header]) 3、编写用例 class TestBasic:pytest.allure.feature(Home)allure.severity(blocker)allure.story(Basic)def test_basic_01(self, action):用例描述未登陆状态下查看基础设置conf Config()data Basic()test Assert.Assertions()request Request.Request(action)host conf.host_debugreq_url http:// hosturls data.urlparams data.dataheaders data.headerapi_url req_url urls[0]response request.get_request(api_url, params[0], headers[0])assert test.assert_code(response[code], 401)assert test.assert_body(response[body], error, u继续操作前请注册或者登录.)assert test.assert_time(response[time_consuming], 400)Consts.RESULT_LIST.append(True) 4、运行整个框架run.py if __name__ __main__:# 定义测试集allure_list --allure_featuresHome,Personalargs [-s, -q, --alluredir, xml_report_path, allure_list]log.info(执行用例集为%s % allure_list)self_args sys.argv[1:]pytest.main(args)cmd allure generate %s -o %s % (xml_report_path, html_report_path)try:shell.invoke(cmd)except:log.error(执行用例失败请检查环境配置)raisetry:mail Email.SendMail()mail.sendMail()except:log.error(发送邮件失败请检查邮件配置)raise 5、err.log实例 [ERROR 2018-08-24 09:55:37]Response body ! expected_msg, expected_msg is {error:继续操作前请注册或者登录9.}, body is {error:继续操作前请注册或者登录.} [ERROR 2018-08-24 10:00:11]Response time expected_time, expected_time is 400, time is 482.745 [ERROR 2018-08-25 21:49:41]statusCode error, expected_code is 208, statusCode is 200 6、Assert部分代码 def assert_body(self, body, body_msg, expected_msg):验证response body中任意属性的值:param body::param body_msg::param expected_msg::return:try:msg body[body_msg]assert msg expected_msgreturn Trueexcept:self.log.error(Response body msg ! expected_msg, expected_msg is %s, body_msg is %s % (expected_msg, body_msg))Consts.RESULT_LIST.append(fail)raisedef assert_in_text(self, body, expected_msg):验证response body中是否包含预期字符串:param body::param expected_msg::return:try:text json.dumps(body, ensure_asciiFalse)# print(text)assert expected_msg in textreturn Trueexcept:self.log.error(Response body Does not contain expected_msg, expected_msg is %s % expected_msg)Consts.RESULT_LIST.append(fail)raise 7、Request部分代码 def post_request(self, url, data, header):Post请求:param url::param data::param header::return:if not url.startswith(http://):url %s%s % (http://, url)print(url)try:if data is None:response self.get_session.post(urlurl, headersheader)else:response self.get_session.post(urlurl, paramsdata, headersheader)except requests.RequestException as e:print(%s%s % (RequestException url: , url))print(e)return ()except Exception as e:print(%s%s % (Exception url: , url))print(e)return ()# time_consuming为响应时间单位为毫秒time_consuming response.elapsed.microseconds/1000# time_total为响应时间单位为秒time_total response.elapsed.total_seconds()Common.Consts.STRESS_LIST.append(time_consuming)response_dicts dict()response_dicts[code] response.status_codetry:response_dicts[body] response.json()except Exception as e:print(e)response_dicts[body] response_dicts[text] response.textresponse_dicts[time_consuming] time_consumingresponse_dicts[time_total] time_totalreturn response_dicts 四、Allure报告及Email 1、Allure报告总览见下图 2、Email见下图 五、后续优化 1、集成Jenkins使用Jenkins插件生成Allure报告 2、多线程并发接口自动化测试 3、接口加密参数加密 【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】 一、Python编程入门到精通 ​二、接口自动化项目实战  三、Web自动化项目实战 四、App自动化项目实战  五、一线大厂简历 六、测试开发DevOps体系  七、常用自动化测试工具 ​八、JMeter性能测试  ​ 九、总结尾部小惊喜 生命不息奋斗不止。每一份努力都不会被辜负只要坚持不懈终究会有回报。珍惜时间追求梦想。不忘初心砥砺前行。你的未来由你掌握 生命短暂时间宝贵我们无法预知未来会发生什么但我们可以掌握当下。珍惜每一天努力奋斗让自己变得更加强大和优秀。坚定信念执着追求成功终将属于你 只有不断地挑战自己才能不断地超越自己。坚持追求梦想勇敢前行你就会发现奋斗的过程是如此美好而值得。相信自己你一定可以做到  最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 ​ 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
http://www.lebaoying.cn/news/142098.html

相关文章:

  • 网站做那个效果好网站修改标题
  • 校园服装网站建设演示文稿网站的后台管理员系统建设教程
  • 昆明网站建设在河科技wordpress-
  • 怎么才能注册做网站视频类网站如何做缓存
  • 建设银行网站诚聘英才百度知道下载
  • 学校网站模板免费襄阳网站建设知名品牌
  • 做直播的网站有哪些网络公司排名及分析
  • 大连网站开发工资滑动网站
  • 秦皇岛昌黎县建设局网站wordpress百度搜索
  • 外贸网址建站有交做拼多多网站的吗
  • 网站建设宗旨是什么网站tag标签
  • 自己电脑建设网站发稿服务
  • 长沙好的网站优化品牌新闻热点事件2021(最新)
  • 单页面网站入侵我司网站改版上线网站建设
  • 做网站用啥框架阜阳专业网站建设
  • 免费的个人网站平台wordpress常用中文插件
  • 商城类网站如何做seo西宁做网站的好公司
  • 模板网站seowordpress短信验证插件
  • 怎么做网站互换链接樟木头电子网站建设报价
  • 好的摄影网站推荐网站取消备案
  • 三点水网站建设浏阳网站开发公司
  • 海南平台网站建设企业青岛房产网上备案查询
  • 深圳网站建设怎样素材网站排行榜前十名
  • python开发wordpress对网站有效的优化软件
  • 企业网站维护工作烟台赶集网网站建设
  • 网站保定网站建设多少钱国内做网站上市公司
  • 工业设计创意网站dw制作网站网页模板
  • 自己做网站建设重装wordpress图片不见
  • 统计局门户网站建设背景葫芦岛网站制作
  • 上海网站开发工程师招聘网柳州专业做网站