【接口自动化测试】第四节.实现项目核心业务的单接口自动化测试

文章目录

  • 前言
  • 一、登录单接口自动化测试
  •       1.1 登录单接口文档信息
  •       1.2 登录成功
  •       1.3 登录失败(用户名为空)
  • 二、数据驱动的实现
  •       2.1 json文件实现数据驱动
  • 三、课程添加单接口自动化测试
  •       3.1 课程添加单接口文档信息
  •       3.2 课程添加成功
  •       3.3 课程添加失败(未登录)
  • 四、课程查询单接口自动化测试
  •       4.1 课程查询单接口文档信息
  •       4.2 课程查询成功
  •       4.3 课程查询失败(用户未登录)
  • 五、课程修改单接口自动化测试
  •       5.1 课程修改单接口文档信息
  •       5.2 课程修改成功
  •       5.3 课程修改失败(用户未登录)
  • 六、课程删除单接口自动化测试
  •       6.1 课程删除单接口文档信息
  •       6.2 课程删除成功
  •       6.3 课程删除失败(用户名为空)
  • 七、项目配置文件
  • 八、Allure报告
  • 总结


前言


一、登录单接口自动化测试

1.1 登录单接口文档信息

需求:
  • 完成测试脚本的业务实现
  • 针对响应结果进行断言


1.2 登录成功

登录成功接口文档信息:


登录成功测试脚本层编写:

实现步骤:

步骤1:导包、创建测试类、前置,后置处理

# 导包
from api.login import LoginAPI# 创建测试类
class TestLoginAPI:# 初始化uuid = None# 前置处理def setup(self):# 实例化接口类self.login_api = LoginAPI()# 获取验证码response = self.login_api.get_verify_code()print(response.json())# 提取验证码接口返回的uuid参数值TestLoginAPI.uuid = response.json().get("uuid")print(TestLoginAPI.uuid)# 后置处理def teardown(self):pass

前置处理是处理获取验证码的uuid信息,用于登录接口使用。


步骤2:创建登录成功方法,并实现获取验证码和登录操作

# 登录成功def test01_success(self):login_data = {"username": "manager","password": "123456","code": "2","uuid": TestLoginAPI.uuid}response = self.login_api.login(test_data=login_data)

步骤3:针对响应结果进行断言

  # 断言响应状态码为200assert 200 == response.status_code# 断言响应数据包含'成功'assert '成功' in response.text# 断言响应json数据中code值assert 200 == response.json().get("code")

断言依据:


1.3 登录失败(用户名为空)

登录失败(用户名为空)文档信息:


登录成功测试脚本层编写:

实现步骤:

步骤1:导包、创建测试类、前置,后置处理(和登录成功一样的)

# 导包
from api.login import LoginAPI# 创建测试类
class TestLoginAPI:# 初始化uuid = None# 前置处理def setup(self):# 实例化接口类self.login_api = LoginAPI()# 获取验证码response = self.login_api.get_verify_code()print(response.json())# 提取验证码接口返回的uuid参数值TestLoginAPI.uuid = response.json().get("uuid")print(TestLoginAPI.uuid)# 后置处理def teardown(self):pass

前置处理是处理获取验证码的uuid信息,用于登录接口使用。


步骤2:创建登录失败(用户名为空)方法

# 登录失败(用户名为空)def test02_without_username(self):login_data = {"username": "",//此处用户名设置为空"password": "123456","code": "2","uuid": TestLoginAPI.uuid}response = self.login_api.login(test_data=login_data)

步骤3:针对响应结果进行断言

# 断言响应状态码为200assert 200 == response.status_code# 断言响应数据包含'错误'assert '错误' in response.text# 断言响应json数据中code值assert 500 == response.json().get("code")

断言依据:


二、数据驱动的实现

1.什么是数据驱动?
维护焦点:测试数据
数据驱动:
以测试数据驱动脚本执行,维护焦点从脚本转向测试数据的一种自动化 测试设计模式
图示说明:
维护测试数据:

2.如何实现数据驱动?

图示说明:

pytest中parametrize装饰器
(1)作用:遍历所有测试数据并运行测试方法。
(2) 语法:
@pytest.mark.parametrize ( ②保存数据参数名, ①测试数据 )
def test_method(self, ③参数名 )
pass
示例:
test_data = [( "manager", "123456" ), ("", "123456"), ("itheima", "123456")]
@pytest.mark.parametrize(" mobile, passwd ", test_data )
def test_login(self, mobile, passwd )
pass
对应上面语法。

针对登录接口实现步骤:

需求:
针对登录接口,将请求数据和断言数据组织成JSON文件,完成自动化测试。
步骤1:准备测试数据
# 测试数据①测试数据test_data = [("manager", "123456", 200, '成功', 200),("", "123456", 200, '错误', 500),("jack666", "123456", 200, '错误', 500),]

步骤2:所以pytest中parametrize装饰器

#登录单接口实现
@pytest.mark.parametrize(②保存数据参数名"username, password, status, message, code" ,①测试数据test_data)def test01_success(self, ③参数名username, password, status, message, code):login_data = {"username": username,"password": password,"code": "2","uuid": TestLoginAPI.uuid}response = self.login_api.login(test_data=login_data)# 断言响应状态码为200assert status == response.status_code# 断言响应数据包含'成功'assert message in response.text# 断言响应json数据中code值assert code == response.json().get("code")

2.1 json文件实现数据驱动

json文件实现数据驱动实现步骤:

步骤1:创建data目录下面的login.json文件用于存储json数据

[{"username": "manager","password": "123456","status": 200,"message": "成功","code": 200},{"username": "","password": "123456","status": 200,"message": "错误","code": 500},{"username": "jack666","password": "123456","status": 200,"message": "错误","code": 500}
]

步骤2:导入json数据文件

# 导包
import json# 读取json文件
def build_data(json_file):

步骤3:读取json数据文件

# 读取json文件
def build_data(json_file):# 1.定义空列表test_data = []# 2.打开json文件with open(json_file, "r") as f:# 3.加载json文件数据json_data = json.load(f)# 4.循环遍历测试数据for case_data in json_data:# 转换数据格式[{},{}] ==> [(),()]username = case_data.get("username")password = case_data.get("password")status = case_data.get("status")message = case_data.get("message")code = case_data.get("code")test_data.append((username, password, status, message, code))# 返回处理之后测试数据return test_data# 登录成功# @pytest.mark.parametrize("username, password, status, message, code", build_data(json_file="../data/login.json"))

三、课程添加单接口自动化测试

3.1 课程添加单接口文档信息

需求:
完成测试脚本的业务实现
针对响应结果进行断言

3.2 课程添加成功

课程添加成功成功测试脚本层编写:

实现步骤:

步骤1:导包、创建测试类、前置,后置处理(和登录成功一样的)

# 导包
from api.login import LoginAPI
from api.course import CourseAPI# 创建测试类
class TestCourseAPI:# 初始化TOKEN = None# 前置处理def setup(self):# 初始化接口类self.login_api = LoginAPI()self.course_api = CourseAPI()# 登录成功# 获取验证码res_v = self.login_api.get_verify_code()# 登录login_data = {"username": "admin","password": "admin123","code": "2","uuid": res_v.json().get("uuid")}res_l = self.login_api.login(test_data=login_data)# 提取登录成功的token数据并保存TestCourseAPI.TOKEN = res_l.json().get("token")print(TestCourseAPI.TOKEN)# 后置处理def teardown(self):pass

前置处理是处理获取验证码的uuid信息,用于登录接口使用。


步骤2:创建课程添加成功方法

 # 课程添加成功def test01_add_success(self):add_data = {"name": "测试开发提升课01","subject": "6","price": 899,"applicablePerson": "2"}response = self.course_api.add_course(test_data=add_data, token=TestCourseAPI.TOKEN)print(response.json())

步骤3:针对响应结果进行断言

 # 断言响应状态码assert 200 == response.status_code# 断言返回数据中包含指定的文字assert "成功" in response.text# 断言json返回数据code值assert 200 == response.json().get("code")

断言依据:


3.3 课程添加失败(未登录)

 课程添加失败(未登录)测试脚本层编写:

实现步骤:

步骤1:导包、创建测试类、前置,后置处理(和登录成功一样的)

# 导包
from api.login import LoginAPI
from api.course import CourseAPI# 创建测试类
class TestCourseAPI:# 初始化TOKEN = None# 前置处理def setup(self):# 初始化接口类self.login_api = LoginAPI()self.course_api = CourseAPI()# 登录成功# 获取验证码res_v = self.login_api.get_verify_code()# 登录login_data = {"username": "admin","password": "admin123","code": "2","uuid": res_v.json().get("uuid")}res_l = self.login_api.login(test_data=login_data)# 提取登录成功的token数据并保存TestCourseAPI.TOKEN = res_l.json().get("token")print(TestCourseAPI.TOKEN)# 后置处理def teardown(self):pass

前置处理是处理获取验证码的uuid信息,用于登录接口使用。


步骤2:创建课程添加失败(未登录)

# 课程添加失败(未登录)def test02_add_fail(self):add_data = {"name": "测试开发提升课02","subject": "6","price": 899,"applicablePerson": "2"}response = self.course_api.add_course(test_data=add_data, token="xxx")print(response.json())

步骤3:针对响应结果进行断言

# 断言响应状态码assert 200 == response.status_code# 断言返回数据中包含指定的文字assert "认证失败" in response.text# 断言json返回数据code值assert 401 == response.json().get("code")

断言依据:


四、课程查询单接口自动化测试

4.1 课程查询单接口文档信息

需求:
完成测试脚本的业务实现
针对响应结果进行断言

4.2 课程查询成功

 

 课程查询成功测试脚本层编写:

实现步骤:

步骤1:导包、创建测试类、前置,后置处理(和登录成功一样的)

# 导包
from api.login import LoginAPI
from api.course import CourseAPI# 创建测试类
class TestCourseAPI:# 初始化TOKEN = None# 前置处理def setup(self):# 初始化接口类self.login_api = LoginAPI()self.course_api = CourseAPI()# 登录成功# 获取验证码res_v = self.login_api.get_verify_code()# 登录login_data = {"username": "admin","password": "admin123","code": "2","uuid": res_v.json().get("uuid")}res_l = self.login_api.login(test_data=login_data)# 提取登录成功的token数据并保存TestCourseAPI.TOKEN = res_l.json().get("token")print(TestCourseAPI.TOKEN)# 后置处理def teardown(self):pass

前置处理是处理获取验证码的uuid信息,用于登录接口使用。


步骤2:创建课程查询成功

# 查询存在的课程def test01_select_success(self):response = self.course_api.select_course(test_data="?name=测试开发提升课01", token=TestCourseAPI.TOKEN)print(response.json())

步骤3:针对响应结果进行断言

     # 断言响应状态码assert 200 == response.status_code# 断言msg中包含指定的文字assert "成功" in response.text# 断言json返回数据中code值assert 200 == response.json().get("code")

断言依据:


4.3 课程查询失败(用户未登录)

 课程查询失败(用户未登录)测试脚本层编写:

实现步骤:

步骤1:导包、创建测试类、前置,后置处理(和登录成功一样的)

# 导包
from api.login import LoginAPI
from api.course import CourseAPI# 创建测试类
class TestCourseAPI:# 初始化TOKEN = None# 前置处理def setup(self):# 初始化接口类self.login_api = LoginAPI()self.course_api = CourseAPI()# 登录成功# 获取验证码res_v = self.login_api.get_verify_code()# 登录login_data = {"username": "admin","password": "admin123","code": "2","uuid": res_v.json().get("uuid")}res_l = self.login_api.login(test_data=login_data)# 提取登录成功的token数据并保存TestCourseAPI.TOKEN = res_l.json().get("token")print(TestCourseAPI.TOKEN)# 后置处理def teardown(self):pass

前置处理是处理获取验证码的uuid信息,用于登录接口使用。


步骤2:创建课程查询成功

# 查询失败(用户未登录)def test02_select_fail(self):response = self.course_api.select_course(test_data="?subject=6", token="xxx")print(response.json())

步骤3:针对响应结果进行断言

   # 断言响应状态码assert 200 == response.status_code# 断言msg中包含指定的文字assert "认证失败" in response.text# 断言json返回数据中code值assert 401 == response.json().get("code")

断言依据:


五、课程修改单接口自动化测试

5.1 课程修改单接口文档信息

需求:
完成测试脚本的业务实现
针对响应结果进行断言

5.2 课程修改成功

课程修改成功测试脚本层编写:

实现步骤:

步骤1:导包、创建测试类、前置,后置处理(和登录成功一样的)

# 导包
from api.login import LoginAPI
from api.course import CourseAPI# 创建测试类
class TestCourseAPI:# 初始化TOKEN = None# 前置处理def setup(self):# 初始化接口类self.login_api = LoginAPI()self.course_api = CourseAPI()# 登录成功# 获取验证码res_v = self.login_api.get_verify_code()# 登录login_data = {"username": "admin","password": "admin123","code": "2","uuid": res_v.json().get("uuid")}res_l = self.login_api.login(test_data=login_data)# 提取登录成功的token数据并保存TestCourseAPI.TOKEN = res_l.json().get("token")print(TestCourseAPI.TOKEN)# 后置处理def teardown(self):pass

前置处理是处理获取验证码的uuid信息,用于登录接口使用。


步骤2:创建课程修改成功

 # 课程修改成功def test01_update_success(self):update_data = {"id": 109,"name": "接口测试001","subject": "6","price": 998,"applicablePerson": "2","info": "课程介绍001"}response = self.course_api.update_course(test_data=update_data, token=TestCourseAPI.TOKEN)print(response.json())

步骤3:针对响应结果进行断言

# 断言响应状态码assert 200 == response.status_code# 断言返回消息assert "成功" in response.text# 断言code值assert 200 == response.json().get("code")

断言依据:


5.3 课程修改失败(用户未登录)

 课程修改失败(用户未登录)测试脚本层编写:

实现步骤:

步骤1:导包、创建测试类、前置,后置处理(和登录成功一样的)

# 导包
from api.login import LoginAPI
from api.course import CourseAPI# 创建测试类
class TestCourseAPI:# 初始化TOKEN = None# 前置处理def setup(self):# 初始化接口类self.login_api = LoginAPI()self.course_api = CourseAPI()# 登录成功# 获取验证码res_v = self.login_api.get_verify_code()# 登录login_data = {"username": "admin","password": "admin123","code": "2","uuid": res_v.json().get("uuid")}res_l = self.login_api.login(test_data=login_data)# 提取登录成功的token数据并保存TestCourseAPI.TOKEN = res_l.json().get("token")print(TestCourseAPI.TOKEN)# 后置处理def teardown(self):pass

前置处理是处理获取验证码的uuid信息,用于登录接口使用。


步骤2:创建课程修改成功

# 课程修改失败(未登录)def test02_update_fail(self):update_data = {"id": 109,"name": "接口测试001","subject": "6","price": 998,"applicablePerson": "2","info": "课程介绍001"}response = self.course_api.update_course(test_data=update_data, token="xxx")print(response.json())

步骤3:针对响应结果进行断言

# 断言响应状态码assert 200 == response.status_code# 断言返回消息assert "认证失败" in response.text# 断言code值assert 401 == response.json().get("code")

断言依据:


六、课程删除单接口自动化测试

6.1 课程删除单接口文档信息

需求:
完成测试脚本的业务实现
针对响应结果进行断言

6.2 课程删除成功

课程删除成功测试脚本层编写:

实现步骤:

步骤1:导包、创建测试类、前置,后置处理(和登录成功一样的)

# 导包
from api.login import LoginAPI
from api.course import CourseAPI# 创建测试类
class TestCourseAPI:# 初始化TOKEN = None# 前置处理def setup(self):# 初始化接口类self.login_api = LoginAPI()self.course_api = CourseAPI()# 登录成功# 获取验证码res_v = self.login_api.get_verify_code()# 登录login_data = {"username": "admin","password": "admin123","code": "2","uuid": res_v.json().get("uuid")}res_l = self.login_api.login(test_data=login_data)# 提取登录成功的token数据并保存TestCourseAPI.TOKEN = res_l.json().get("token")print(TestCourseAPI.TOKEN)# 后置处理def teardown(self):pass

前置处理是处理获取验证码的uuid信息,用于登录接口使用。


步骤2:课程删除成功

  # 课程删除成功def test01_delete_success(self):response = self.course_api.delete_course(course_id=110, token=TestCourseAPI.TOKEN)print(response.json())

步骤3:针对响应结果进行断言

 # 断言响应状态码assert 200 == response.status_code# 断言返回消息assert "成功" in response.text# 断言code值assert 200 == response.json().get("code")

断言依据:


6.3 课程删除失败(用户名为空)

课程删除失败(用户名为空)脚本层编写:

实现步骤:

步骤1:导包、创建测试类、前置,后置处理(和登录成功一样的)

# 导包
from api.login import LoginAPI
from api.course import CourseAPI# 创建测试类
class TestCourseAPI:# 初始化TOKEN = None# 前置处理def setup(self):# 初始化接口类self.login_api = LoginAPI()self.course_api = CourseAPI()# 登录成功# 获取验证码res_v = self.login_api.get_verify_code()# 登录login_data = {"username": "admin","password": "admin123","code": "2","uuid": res_v.json().get("uuid")}res_l = self.login_api.login(test_data=login_data)# 提取登录成功的token数据并保存TestCourseAPI.TOKEN = res_l.json().get("token")print(TestCourseAPI.TOKEN)# 后置处理def teardown(self):pass

前置处理是处理获取验证码的uuid信息,用于登录接口使用。


步骤2:课程删除失败(用户名为空)

# 课程删除失败(用户未登录)def test03_delete_fail(self):response = self.course_api.delete_course(course_id=110, token="xxx")print(response.json())

步骤3:针对响应结果进行断言

  # 断言响应状态码assert 200 == response.status_code# 断言返回消息assert "认证失败" in response.text# 断言code值assert 401 == response.json().get("code")

断言依据:


七、项目配置文件

测试环境 (kdtx-test.itheima.net) 测试通过后,我们的代 码能直接在生产环境
(kdtx.itheima.net)上 运行吗?

apiTestFramework # 项目名称
├── api # 定义封装被测系统的接口
├── script # 定义测试用例脚本
├── data # 存放测试数据文件
├── report # 存放生成的测试报告
├── common # 存放通用工具类
├── config.py # 定义项目的配置信息
└── pytest.ini # pytest配置文件

配置文件config.py的步骤:
# 导包
import os
# 定义环境域名
BASE_URL = "http://kdtx-test.itheima.net"
# 统一文件路径
BASE_PATH = os.path.dirname(__file__)
print(BASE_PATH)

八、Allure报告

(1)Allure介绍

1.介绍
• 能生成美观易读的报告
• 支持多种开发语言,如java、python等
• 能快速上手
 2.操作步骤
① 生成测试结果文件(json文件)
② 使用allure命令生成在线报告

步骤1:生成测试结果文件

安装:pip install allure-pytest
使用步骤:
1. 将pytest配置文件中的命令行参数加上如下代码
--alluredir report
2. 编写好测试脚本后,在命令行行中运行pytest
[pytest]
addopts = -s --alluredir report
testpaths = ./scripts
python_files = test*.py
python_classes = Test*
python_functions = test*
3. 程序运行结束后,会在项目的report目录中生成一些json文件

步骤2:使用allure生成在线报告

安装:
1. https://github.com/allure-framework/allure2/releases 下载 allure
2. 解压缩安装包到一个 不包含中文路径 的目录
3. 将压缩包内的 bin 目录配置到 path 系统环境变量
4. 右键我的电脑 - 属性 - 高级设置 - 环境变量 - 找到系统环境变量的path项 - 增加 allure到bin目录
5. 在命令行中输入 allure --version 命令,能显示allure版本信息,即为成功


总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/40571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Promethuse-监控 Etcd

一、思路 Prometheus监控Etcd集群,是没有对应的exporter,而 由CoreOS公司开发的Operator,用来扩展 Kubernetes API,特定的应用程序控制器,它用来创建、配置和管理复杂的有状态应用,如数据库、缓存和监控系…

软件性能测试有哪几种测试方法?专业性能测试报告出具

软件性能测试是指对软件系统在特定负载条件下的性能进行评估和验证的过程,目的是确保软件在正常使用的情况下能够满足用户的要求,并在稳定的性能水平下运行,在软件开发过程中起到了至关重要的作用,可以确保软件产品的质量和可靠性…

【Android面试八股文】你是怎么保证Android设备的时间与服务器时间同步的?(使用NTP和TrueTime方案)

文章目录 一、网络时间协议(NTP)二、使用网络时间协议(NTP)2.1 使用系统提供的 NTP 服务器2.2 使用TrueTime2.2.1 引入TrueTime库2.2.2 初始化 TrueTime2.2.3 用法2.2.4 使用 TrueTime 获取时间2.2.4 自动更新时间2.2.5 注意事项二. 使用 HTTP 请求获取服务器时间2.1. 发送…

【unity实战】使用Unity实现动作游戏的攻击 连击 轻重攻击和打击感

最终效果 文章目录 最终效果前言素材下载:玩家移动跳跃控制攻击动画配置轻攻击重攻击 攻击时禁止移动和攻击移动补偿敌人击退和播放受击动画受击特效攻击停顿和屏幕震动局部顿帧(补充)参考源码完结 前言 注意本文为自己的学习记录笔记&#…

Android平台崩溃和 ANR 问题进行符号化解析、解析崩溃日志的内存地址

使用Android Logcat Stacktrace Utility | Android Logcat | 1.2.3 1.设置so库路径 2.打开Stacktrace Utility工具 3.在Original粘贴报错内存地址 4.点击Resolve Stacktraces,就会解析出内存地址 如果是红色,解析失败了,缺少原生so库,可以在第一步添加so库文件再次尝试…

c语言回顾-内存操作函数

目录 前言 1.memcpy 函数 1.1函数介绍 1.2与strcpy的区别 1.3memcpy的模拟 2.memmove 函数 2.1函数介绍和使用 2.2函数的模拟 3.memset函数 3.1函数介绍 3.2函数的模拟 4.memcmp函数 4.1函数的使用 4.2函数的模拟 结束语 前言 在动态内存的章节中小编详细讲解了动…

代码随想录算法训练营第69天:图论7[1]

代码随想录算法训练营第69天:图论7 109. 冗余连接II 卡码网题目链接(ACM模式)(opens new window) 题目描述 有向树指满足以下条件的有向图。该树只有一个根节点,所有其他节点都是该根节点的后继。该树除了根节点之外的每一个节…

【Arduino】ESP8266开发环境配置(图文)

ESP8266与ESP32开发很类似,相当于是低配版本的ESP32,其同样具有无线网络连接能力,功能强大,而且价格比ESP32更具有优势。接下来我们就来设置一下ESP8266的开发环境。 使用Arduino开发平台软件,选择首选项进行设置。 h…

ASP.NET Core 6.0 使用 Action过滤器

Action过滤器 在ASP.NET Core中,Action过滤器用于在执行Action方法之前或之后执行逻辑。你可以创建自定义的Action过滤器来实现这一点。 继承 ActionFilterAttribute 类: [TypeFilter(typeof(CustomAllActionResultFilterAttribute))]public IActionRe…

67.WEB渗透测试-信息收集- WAF、框架组件识别(7)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:66.WEB渗透测试-信息收集- WAF、框架组件识别(6)-CSDN博客 关于w…

第四届数字安全大会:AI时代数据安全策略与天空卫士创新实践

2024年6月22日,以 “新质•真能力”为主题的第四届数字安全大会在北京隆重召开。这场由数世咨询和CIO时代联合主办的行业盛会,集中探讨了大模型、数据治理与流通、以及安全运营等当前最前沿的议题。大会吸引了来自不同行业的首席信息官(CIO&a…

2024Datawhale-AI夏令营——机器学习挑战赛——学习笔记

#ai夏令营#datawhale#夏令营 Day1:入门级demo运行 这个其实比较简单,按照操作来做就行了,特征工程和调参暂时都没有做,后续的才是重头戏。 Day2:正式比赛开始 赛题:数据挖掘赛道——利用机器学习方法根据给定的特征判断PROTACs…

【EFK】efk 8收集docker容器日志测试

前言 目前,efk 全家桶已经更新到版本8 了,本章节我们使用8版本的elk搭建日志收集系统,了解它的配置运行过程,方便以后在更复杂的环境中更好的使用。 版本默认就是8最新的,也可以自己指定其他8的版本 elasticsearch: …

vs 远程链接ssh 开发 简单实验

1.概要 动态编译语言,跨平台必须做分别的编译,比如linux和windows。如何再windows环境下开发编译出linux平台的程序呢,vs支持远程链接编辑,就是再vs中写代码,但是编译确是链接远程的环境编译的。 2.环境准备 2.1 vs…

R语言学习,入门

我是一名6年开发经验的程序员,后端,大数据,前端都会。 现在加入了医疗行业,要做数据分析,前同事的实验室生信专业的,用的是R语言,为了跑通他的程序。就来学一下吧,看了一下好像挺简…

关于软件本地化,您应该了解什么?

软件本地化是调整软件应用程序以满足目标市场的语言、文化和技术要求的过程。它不仅仅涉及翻译用户界面;它包含一系列活动,以确保软件在目标语言环境中可用且相关。以下是您应该了解的有关软件本地化的一些关键方面: 了解范围 软件本地化是…

水利水电安全员C证考试题库资料,2024年全国考试通用!

1.安全生产民事责任,是指责任主体违反安全生产法律规定造成(),由人民法院依照民事法律强制其行使民事赔偿的一种法律责任。民事责任追究的目的是为了最大限度的维护当事人受到民事损害时享有获得民事赔偿的权利。 A.民事损伤 B.…

针对SVN、GIT版本管理工具进行源代码加密保护

针对SVN、GIT版本管理工具进行源代码加密保护 在软件开发过程中,版本管理工具如SVN和GIT是不可或缺的组成部分,它们帮助团队管理源代码的变更和版本。然而,这些工具也面临着源代码泄露的安全风险。如果不针对数据进行加密保护,很…

如何从腾讯云迁移到AWS

随着跨境出海潮不断扩大,企业越来越意识到将工作负载迁移到海外节点的必要性,以获取更多功能、灵活性和性能。然而,顺利迁移业务主机并确保业务稳定访问是一项具有挑战性的任务。在此挑战中,借助AWS迁移工具和迁移流程的强大支持&…

如何检查购买的Facebook账号优劣?

Facebook 是全球最受欢迎的社交网络之一,为品牌广告提供了巨大的潜力。许多公司和营销人员使用 Facebook 来推广他们的产品和服务,经常会购买账号。当然也分出了很多账号,比如个人号,BM号,广告号,小黑号等等。 但是,有…