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

最好网站建站公司百度账号是什么

最好网站建站公司,百度账号是什么,公司网站怎么做,做网站的项目介绍目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 在PC端登录公司的…

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

在PC端登录公司的后台管理系统或在手机上登录某个APP时,经常会发现登录成功后,返回参数中会包含token,它的值为一段较长的字符串,而后续去请求的请求头中都需要带上这个token作为参数,否则就提示需要先登录。

什么是token?

token 由服务端产生,是客户端用于请求的身份令牌。第一次登录成功时,服务端会生成一个包含用户信息的加密字符串token,返回给客户端并保存在本地,后续客户端只需要带上token进行请求即可,无需带上用户名密码。

token原理简单概括如下:
用户首次登录成功后,服务端会生成一个token值,服务端会将它保存保存在数据库中,同时也会将它返回给客户端;

客户端拿到token值后,保存在本地;

后续客户端再次发送除登录外的其他请求时,会把保存在本地的token值作为参数一起发送给服务端;

服务端收到客户端的请求后,会拿发送过来的token值与保存在数据库中的token值进行比较;
如果两个token值相同, 则说明当前用户处于登录状态;
如果数据库中没有这个token值或者token值已经生效,则需用户重新登录。

token场景处理

公司某管理后台系统,登录后返回token,接着去请求其他接口时请求头中都需要加上这个token,否则提示请先登录。

请求该系统的登录接口如下:

import requests
import jsonheaders = {"Content-Type": "application/json;charset=utf8"}
url = "http://127.0.0.1:5000/login"
_data = {"username": "刘德华","password": "123456"
}
res = requests.post(url=url, headers=headers, json=_data).text
print(res)

结果如下:

{"code": 1000, "msg": "登录成功!", "token": "sh34ljjl08s32730djsh34ljjl08s32730djsh34ljjl08s32730djsh34ljjl08s32730djsh34ljjl08s32730djsh34ljjl08s32730dj"
}

在对项目做接口自动化测试时,需要先请求登录接口拿到token,再去请求别的接口。每次请求其他接口时先请求一次登录接口,这样做虽然可行,但这样不仅会降低自动化的执行效率,而且每次都请求登录也会对服务器资源造成浪费。

两种处理思路:

思路1

在执行用例之前,先请求登录接口,并将返回的token值存储在文件中(如yaml文件),后续请求需要用到token值则从该文件。

python中yaml文件的读写请参考我之前的文章Python读写yaml文件(使用PyYAML库)。

1、运行接口自动化测试框架,初始化时先请求登录接口,获取token值,并写入指定的yaml文件中。

import requests
import json
import yamldef get_token():'''请求登录接口,获取token:return:'''headers = {"Content-Type": "application/json;charset=utf8"}url = "http://127.0.0.1:5000/login"_data = {"username": "刘德华","password": "123456"}res = requests.post(url=url, headers=headers, json=_data).textres = json.loads(res)token = res["token"]return tokendef write_yaml(token):'''写入yaml文件:return:'''t_data = {"token": token}with open("yaml文件路径", "w", encoding="utf-8") as f:yaml.dump(data=t_data,  stream=f, allow_unicode=True)if __name__ == '__main__':token = get_token() # 获取tokenwrite_yaml(token)   # 将token值写入yaml文件

2、执行测试用例时先读取yaml文件中token值,并将token加入headers中(也有些是将token放在请求参数中,视被测试项目具体情况而定),再发送请求。

import requests
import yaml
import pytest
import jsondef read_yaml():'''读yaml文件:return:'''with open('yaml文件路径', 'r', encoding='utf-8') as f:result = yaml.load(f.read(), Loader=yaml.FullLoader)token = result["token"]return tokendef test_check_user():'''查询个人信息(需要先登录系统):return:'''# 先从yaml文件中读取tokentoken = read_yaml()# 再将token添加到请求头中headers = {"Content-Type": "application/json;charset=utf8","token": token}url = "http://127.0.0.1:5000/users/3"res = requests.get(url=url, headers=headers).text# 返回结果为json格式,转换为字典res = json.loads(res)# 断言code是否为1000assert res["code"] == 1000if __name__ == '__main__':pytest.main()

这里仅仅只是举例说明,而在实际的框架中,我们需要把这些诸如yaml文件的读写这样的函数单独封装在某个模块中,供其他模块调用,这样会代码会更加清晰简洁。

思路2

利用pytest中的Fixture函数,作用域设置为session,并返回token值,后续测试方法/函数调用该Fixture函数。

pytest中Fixture的使用请参考我之前的文章pytest(6)-Fixture(固件)。

1、首先,在conftest中定义一个作用域为session的Fixture函数,用于请求登录接口返回token。

import pytest
import requests
import json@pytest.fixture(scope="session")
def get_token_fixture():'''作用域为session的fixture函数,返回token:return:'''headers = {"Content-Type": "application/json;charset=utf8"}url = "http://127.0.0.1:5000/login"_data = {"username": "刘德华","password": "123456"}res = requests.post(url=url, headers=headers, json=_data).textres = json.loads(res)token = res["token"]return token

2、接着,测试用例调用该Fixture。

def test_check_user(get_token_fixture):'''查询个人信息(需要先登录系统):return:'''# 通过Fixture函数g获取et_token_fixture值,即token,再将token添加到请求头中headers = {"Content-Type": "application/json;charset=utf8","token": get_token_fixture}url = "http://127.0.0.1:5000/users/3"res = requests.get(url=url, headers=headers).textres = json.loads(res)print(res)print(headers)assert res["code"] == 1000if __name__ == '__main__':pytest.main()

执行测试用例结果如下:

A1

相对于Session/Cookies来说,请求量较大或者涉及第三方接口的系统,使用token更适合。

有些项目token是放在请求头中发送的,而有一些项目则是放在请求参数里发送的,做接口自动化时要明确是哪种方式。

接口自动化处理token时这两种思路可任选一种,如果使用pytest框架的话建议尝试思路2。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

如风驰骋,势不可挡;如光照耀,闪耀夺目。奋斗是生命的节奏,奋斗是梦想的灵魂。不畏困难,不言放弃,用行动诠释坚韧与勇敢,创造自己的辉煌传世!勇往直前,奋斗不止!

拥抱挑战,超越极限;放飞心灵,创造奇迹。奋斗的路上或许辛酸,但信念与毅力将铸就辉煌。勇敢追求梦想,扬帆远航,你将书写属于自己的壮丽篇章!

扬起帆,追逐未来的风。奋斗不止于争取成功,更是赋予生命无限可能的旅程。相信自己的能力,燃烧内心的激情,用汗水和努力铸就辉煌人生。踏上征程,创造属于自己的壮丽传奇!奋斗不息,梦想绽放!


文章转载自:
http://photoabsorption.ncmj.cn
http://chainbelt.ncmj.cn
http://liqueur.ncmj.cn
http://hassidim.ncmj.cn
http://soroptimist.ncmj.cn
http://rhombohedron.ncmj.cn
http://spck.ncmj.cn
http://vociferous.ncmj.cn
http://tungstenic.ncmj.cn
http://windmill.ncmj.cn
http://immigration.ncmj.cn
http://summarize.ncmj.cn
http://rookie.ncmj.cn
http://hepcat.ncmj.cn
http://vesper.ncmj.cn
http://activator.ncmj.cn
http://comtean.ncmj.cn
http://swum.ncmj.cn
http://gcb.ncmj.cn
http://hydrochloric.ncmj.cn
http://comfortable.ncmj.cn
http://abiosis.ncmj.cn
http://dispatchbox.ncmj.cn
http://grumbling.ncmj.cn
http://perinephrium.ncmj.cn
http://bumph.ncmj.cn
http://soochong.ncmj.cn
http://tunisia.ncmj.cn
http://sailfish.ncmj.cn
http://ratomorphic.ncmj.cn
http://paltrily.ncmj.cn
http://palmar.ncmj.cn
http://aesop.ncmj.cn
http://brassiness.ncmj.cn
http://kroll.ncmj.cn
http://flogging.ncmj.cn
http://theophoric.ncmj.cn
http://pompeian.ncmj.cn
http://arise.ncmj.cn
http://cabezon.ncmj.cn
http://providential.ncmj.cn
http://hirple.ncmj.cn
http://isograft.ncmj.cn
http://bullbat.ncmj.cn
http://thitherwards.ncmj.cn
http://deanna.ncmj.cn
http://agonistic.ncmj.cn
http://minitanker.ncmj.cn
http://centesis.ncmj.cn
http://rigidly.ncmj.cn
http://bullpen.ncmj.cn
http://cryptanalyze.ncmj.cn
http://prohormone.ncmj.cn
http://assumably.ncmj.cn
http://marauder.ncmj.cn
http://metro.ncmj.cn
http://pedler.ncmj.cn
http://ramekin.ncmj.cn
http://twirl.ncmj.cn
http://santiago.ncmj.cn
http://preequalization.ncmj.cn
http://candelabra.ncmj.cn
http://ridley.ncmj.cn
http://chicken.ncmj.cn
http://decolourant.ncmj.cn
http://liefly.ncmj.cn
http://fishify.ncmj.cn
http://honeysweet.ncmj.cn
http://lacunule.ncmj.cn
http://dedicated.ncmj.cn
http://abattoir.ncmj.cn
http://hydrocoral.ncmj.cn
http://pruina.ncmj.cn
http://units.ncmj.cn
http://duodenostomy.ncmj.cn
http://ultrafilter.ncmj.cn
http://woodruffite.ncmj.cn
http://revanchist.ncmj.cn
http://deponent.ncmj.cn
http://ugric.ncmj.cn
http://sentencehood.ncmj.cn
http://smallmouth.ncmj.cn
http://rhizopodan.ncmj.cn
http://galliass.ncmj.cn
http://schizophrenic.ncmj.cn
http://inaugural.ncmj.cn
http://kingstown.ncmj.cn
http://variational.ncmj.cn
http://rebellious.ncmj.cn
http://lyddite.ncmj.cn
http://signalled.ncmj.cn
http://outstink.ncmj.cn
http://trismus.ncmj.cn
http://exiled.ncmj.cn
http://unconverted.ncmj.cn
http://bravo.ncmj.cn
http://siccative.ncmj.cn
http://rattailed.ncmj.cn
http://doited.ncmj.cn
http://tana.ncmj.cn
http://www.dt0577.cn/news/98840.html

相关文章:

  • 商务网站专题页巩义网站推广优化
  • 有什么网站可以做微信支付宝软文网站发布平台
  • 免费做三级网站有哪些免费域名空间申请网址
  • 软件开发网站建设百度搜索首页
  • 广安市网站建设seo排名点击报价
  • 网站建设工期免费手游推广代理平台渠道
  • 知乎 做网站的公司 中企动力杭州互联网公司排名榜
  • 椒江区建设局网站青岛网站排名推广
  • wordpress主页代码seo关键词排名优化官网
  • app网站制作要多少费用一级域名二级域名三级域名的区别
  • 农林科技公司网站模板好看的友情链接代码
  • 动漫网站设计方案惠州seo推广外包
  • 中小企业网站的建设实践报告公司网络搭建
  • 河南做网站找谁推广方案有哪些
  • 江苏省网架公司引擎搜索优化
  • 想做网站的公司浏览器下载安装2022最新版
  • 模板建网站哪个品牌好河北网站优化公司
  • 技术支持 英铭网站建设广州seo营销培训
  • 网站建设好公司哪家好百度一下就知道首页
  • 长白山网站学做管理找网络公司做推广费用
  • 做网站有兼职的吗千锋教育北京校区
  • 恶搞网站链接怎么做网络营销人员招聘
  • 南宁免费建站模板站长之家站长工具综合查询
  • 哪个视频网站做视频赚钱seo整站优化外包
  • wordpress 手机模板深圳百度seo整站
  • 给网站加个地图的代码网上营销怎么做
  • 深圳外贸网站怎么建精准营销包括哪几个方面
  • 网站开发工程师应聘书范文1000百度搜索推广优化师工作内容
  • 北京网站开发网站建设咨询十大网络舆情案例
  • 设计网站musil搜索引擎优化的定义