- 使用pocoui进行airtest测试
留仙洞
测试黑盒测试业务流程测试
一、pocoui安装poco是网易自研的无需嵌入sdk。使用poco可以向appuim、selenium一样定位app上的元素对象位置。poco安装有两种方式,第一种是直接网上搜索poco依赖包下载,然后使用python进行解压安装,这里不做介绍。另外一种是直接使用pip安装。在命令行中使用指令:pipinstallpocoui进行安装。等待安装完后使用piplist命令查看是否安装成功,如下,p
- 二、使用poco进行airtest测试
留仙洞
airtest自动化测试自动化
一poco安装poco是网易自研的无需嵌入sdk。使用poco可以向appuim、selenium一样定位app上的元素对象位置。poco安装有两种方式,第一种是直接网上搜索poco依赖包下载,然后使用python进行解压安装,这里不做介绍。另外一种是直接使用pip安装。在命令行中使用指令:pipinstallpocoui进行安装。等待安装完后使用piplist命令查看是否安装成功,如下,pipl
- 使用Appuim+Python脚本实现Android应用自动登录
PalmerYang
androidpython自动化
一.引言众所周知在App应用开发时我们会有不同的服务器环境来进行开发调试,例如测试环境,预发布环境,正式服环境.由于环境众多所以在测试工程师反馈问题时总要不断的去登录不同的服务器环境进行验证和调试。流程如下:打开应用登录界面输入不同环境的账户密码登录验证通过这三部才能进入App中进行调试。这三部的过程的执行重复率非常高,作为程序与我们能不能通过程序简化人工的操作呢?笔者将在本文中通过分析和实践来实
- appuim+python自动化操作的一些工具使用
有爱的梦_大东
1.uiautomatorviewer安卓sdk提供的查看应用你要操作的元素,如:print('点击企业微信顶部+按钮')driver_wework.find_element_by_id('com.tencent.mm:id/ix5').click()查看要操作元素的id如果找不到id可以用driver_wework.find_element_by_android_uiautomator('new
- appuim+python自动化打开微信
有爱的梦_大东
1、前景回顾前面我们知道了实现appuim+python自动化的环境安装和工具使用,了解了部分命令行,接下来就是代码环节,会的直接屏蔽,有人说不会python怎么搞,只要你会一门编程语言就可以了,剩下的就是百度2.自动化打开微信(1)前期准备获得微信包名和启动路径使用前面介绍的命令行包名:com.tencent.mm启动路径:com.tencent.mm.ui.LauncherUI(2)定义启动方
- appium-uiautomatorviewer失败Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncExcept
SoLucky2017
appiumxml
在网上找了很多办法都无效解决办法:1、在cmd命令窗口中输入adbroot即可。(无效)2、重启手机无效(无效)3、重新把手机拔了再插(我尝试了一下,没用)(无效)4、重启appuim(无效)5、重启uiautomatorviewer.bat(无效)6、打开手机开发者权限,将USB调试按钮重新启动就好了(OK)
- iOS非越狱自动化脚本的方案
harder321
IOSios自动化运维
因为苹果审核过于严格,私有API是不允许上架appstore,但是自动化脚本是很多手游外挂的刚需,为了绕过苹果的限制,采用现有的合法规则的办法,实现iPhone的自动化操作,类似按键精灵的功能,我查询了很多资料,做了一下尝试:首先放弃了PTFakeTouch、appuim、xctest、uitest、monkey等方案,因为它们一方面要越狱,另外一方面需要代码植入,不满足简单容易使用的原则。自动化
- 2019-04-03
李萌萌work
#appuim分享##自动化测试工具比较###1、有哪些可用的UI自动化框架![自动化框架](https://img-blog.csdn.net/20170705085437144?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXh5czAx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/7
- appuim java 脚本_APP自动化测试神器之Appium-QQ登录脚本实战(java版)
李诺亚
appuimjava脚本
在前文中,我们已经完成了如下知识点的铺垫:一、QQ登录脚本测试用例下面我们就来着手实现QQ轻聊版本应用的登录业务脚本的开发和运行。打开android模拟器上的qq应用点击首页上的登录按钮在登录页面输入用户名和密码点击登录按钮滑动条状验证码进行验证(如果有的话)登录qq账号成功二、测试环境准备JDK安装及path配置启动夜神模拟器(或itools),安装qq软件,ADB连接模拟器正常打开Appium
- appuim main.js: error: argument "--app": Expected one argument. null 运行错误解决
_夏兮
运行appuim后报main.js:error:argument"--app":Expectedoneargument.nullerror解决:ApplicationPath需要填值appuim参数说明setting分析:报这个错误是因为--app参数值为空照成的,主要是由于我把ApplicationPath打钩了而未填值,赋值后就可以了。直接ApplicationPath这个选项不打钩,运行正常
- 自动化测试-uiautomatorviewer.bat
Shanwue
Appiumjava定位androidselenium
目录一.认识定位控件(元素定位工具)二.功能及按钮介绍三.Appuim支持的定位方式3.01id定位3.02name定位3.03className定位3.04classNameMatches定位3.05textMatches正则匹配查找3.06textStartsWith定位3.07class_name定位3.08父子关系、兄弟关系定位3.09滚动查找3.10Accessibility_id定位3
- MAC Appuim 安装配置
测试小蚂蚁
Appuim菜鸟级入手-Android自动化一、Appium环境搭建(mac系统)1.安装Appium通过下载dmg安装:官方下载:http://appium.io/国内下载:http://pan.baidu.com/s/1jGvAISu(推荐)2.下载AndroidSDK,链接http://down.tech.sina.com.cn/page/45703.html3.安装Xcode,下载地址:h
- 使用Python+Appuim 清理微信的方法
使用Appium安装一下Python用到的模块pipinstallAppium-Python-Client获取好友列表在Pycharm中配置一下启动环境desired_capabilities={'platformName':'Android',#操作系统'deviceName':'2a254a02',#设备ID,使用cmd中adbdevices命令得到'platformVersion':'10.
- 使用Python+Appuim 清理微信
ztenv
pythonpythonseleniumappuim
使用Appium安装一下Python用到的模块pip install Appium-Python-Client获取好友列表在Pycharm中配置一下启动环境desired_capabilities = { 'platformName': 'Android', # 操作系统 'deviceName': '2a254a02', # 设备 ID,使用 cmd 中 adb devices 命令
- web自动化测试与Appuim自动化测试对比
weixin_30639719
测试移动开发
web自动化测试-打开浏览器:1fromseleniumimportwebdriver2driver=webdriver.Chrome()#定义chrome驱动3driver.maximize_window()#浏览器最大化4driver.get('http://www.baidu.com')#打开百度网址Appuim自动化测试-打开一个APP:1fromappiumimportwebdriver
- 如何用Python控制手机 -- appuim安装与使用
_天涯__
Debug记录pythonjavaandroidappiumnodejs
今天由于个人需求,想要用自动连点器之类的APP控制下手机,但是目前网上可以搜到的连点器都没有判断停止条件的功能,而我正好需要这个,于是决定自己写一个!问了百度和同学之后,决定用ADB调试,安装appium来实现。目录ADB环境安装配置PythonJavaAndroidSDKNode.JS.NETFrameworkAppiumAppium-Python-ClientAppium基础使用启动使用文
- Python+Appium 小红书app 真机 爬虫入门
boboloki
爬虫
Python+Appium小红书app真机爬虫基本记录appium爬虫基本过程配置环境前期准备最近在学习怎么爬手机app,弄了两三天才入了门,其中遇到了很多问题,在这里记录一下。先后用了小红书和闲鱼来测试。主要参考了两个博主的文章。使用Appium爬取淘宝App数据和Python网络爬虫——Appuim+夜神模拟器爬取得到APP课程数据。这里的代码是基于第一篇文章里面的代码修改得到的。tips:用
- appuim进行真机测试
唐阿彪
python
1.前置环境就不说了需要Appiumadbusb链接手机允许USB调试2.第一个坑:在windos下dos里输入adbdevices后弹窗提示adb.exe停止工作,这时候可能是应为adb的5073端口被占用,我查了下自己的确实被360loader占用,接触占用后就OK了参照:https://www.cnblogs.com/wujiadexingfu/p/7530013.html3.解决adb的坑
- mac下python+appuim+安卓自动化开发环境配置(开发工具pycharm)
Jason_WangYing
python3appuim
最近想研究下安卓手机的远程控制,所以研究了下appuim,下面主要是记录下,我在学习appuim时遇见的一些问题与环境实践部署。1.下载安装python官方地址:https://www.python.org/本人下载3.7.5,安装不做详细介绍,很简单的,如果已经做过python环境了自动忽略。2.安装uiautomator2库官方地址:https://github.com/openatx/uia
- appium+python android自动化测试
zhanxingshan007
python
本文主要学习参考:https://www.cnblogs.com/fnng/p/4540731.html很早之前就听别人说:人生苦短,何不python;刚好借此工作机会,鼓起勇气了解下python;接下来就说说我搭建appuim环境过程首先我疑惑的三个问题是:1、appiumpythonIDE用哪一款2、appium一些依赖有哪些3、appium怎么和android真机连接我想在解决这三个问题前,
- APP自动化--appuim学习笔记__转载自http://www.testclass.net/appium/appium-base-dc/
女贞子
软件测试app自动化
目录1.DesiredCapabilities2.控件元素定位ruby篇python篇java篇3.ADB常用的几个命令4.环境配置-AndroidSDK+JDK+eclipse+ant+adt第一步、安装JDK;第二步、安装Eclipse;第三步、下载并安装AndroidSDK;第四步、为Eclipse安装ADT插件5.appium自动化测试搭建流程。1连接设备名称(真机/模拟机):adbdev
- Python网络爬虫——Appuim+夜神模拟器爬取得到APP课程数据
James Shangguan
网络爬虫Python
一、背景介绍随着生产力和经济社会的发展,温饱问题基本解决,人们开始追求更高层次的精神文明,开始愿意为知识和内容付费。从2016年开始,内容付费渐渐成为时尚。罗辑思维创始人罗振宇全力打造“得到APP”就是这样一款优质的可以听音频、学通识课程、看电子书、看直播、记笔记的知识付费平台,得到汇聚罗振宇、薛兆丰、梁宁、万维钢、吴军、香帅、宁向东等各个领域的专家学者的精品课程,致力于服务所有终身学习者。也许你
- 小白使用appuim+python 录制第一个脚本详细步骤
一问四不知
appuim
第一步:启动appuim服务第二步:启动检查器会话第三步:编辑自动设定“platformName”:“Android”,#系统"platformVersion":“10”,#系统版本“deviceName”:“97eebaf0”,#手机名称“appPackage”:“zwzt.fangqiu.edu.com.zwzt”,#软件安装包Package“appActivity”:“zwzt.fangqi
- Appuim运行Android真机例子
哥就是个传说
1.安装appium,参考http://www.jianshu.com/p/55fef32ff5052.运行安卓真机例子参考,http://www.jianshu.com/p/5d4a1d4583d93.着重提几点,针对2中文章涉及的地方,否则运行不起来。3.1appPackage一定要修改为你要测试的app的包名。appActivity一定要修改为你要测试的app的activity。如何获取ap
- appium-java,连接真机启动微信
weixin_30783913
1.启动appium2.设置信息3.设置IP和端口4.appium连接手机,微信中打开debugx5.qq.com,信息-》TBSsettings-》是否打开TBS内核Insperector调试功能5.代码选择安装包后可以获取appPackage,appActivity方法publicDesiredCapabilitiesget_capabilities(inti){//配置appuim信息Des
- Android Native App自动化测试实战讲解(上)(基于python)
weixin_30627341
1.NativeApp自动化测试及Appuim框架介绍android平台提供了一个基于java语言的测试框架uiautomator,它一个测试的Java库,包含了创建UI测试的各种API和执行自动化测试的引擎。如果想使用uiautomator去做App自动化测试的话,需要去学习java语言,本文分享的主题是基于python的,那么如何使用python来控制App呢?就需要借助本文将要讲到的框架ap
- Android Native App自动化测试实战讲解(下)(基于python)
weixin_30251587
6.Appuim自动化测试框架API讲解与案例实践(三)如图1,可以在主函数里通过TestSuite来指定执行某一个测试用例;6.1,scroll();如图2从图3中可以看到当前页面的所有元素resource_id都是相同的,所以不能通过resource_id来定位元素,这里选择by_class_name方法来获取元素列表的方式,然后向scroll(object1,object2)中传入两个列表中
- 移动端python软件自动化测试入门到精通appuim项目实战-田春成-专题视频课程
Tim_2018
视频教程
移动端python软件自动化测试入门到精通appuim项目实战—3487人已学习课程介绍课程由浅到深,纯实例讲解,所有基础均在实际项目中讲解,边学边用,编写框架过程中难点都会深入讲解。能够使学员掌握。学会搭建基于数据驱动框架,PO实用测试框架。注:请全屏观看,更清晰课程收益本课程以python移动端自动化为主,从零基础入门到高级应用,同时也会介绍selenium,课程围绕实际项目,基础知识都在实际
- IOS自动化-appium环境搭建
软妹纸_萌
Appium
工作需要搭建ios自动化框架,使用Appuim框架,搭建过程也是个学习的过程,仅此记录一下,方便日后查看安装xcode安装homebrew:是一款MacOS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。将下面的命令粘贴至终端/usr/bin/ruby-e"$(curl-fsSLhttp
- Robotframework+Appuim自动化测试入门:开启指定APP
JNU_PAN
测试
正常步骤:1、环境搭建好后,在cmd中运行ride.py或者创建ride的快捷方式启动ride2、打开appiumserver,记得要点右上角的三角形符号才是开启了服务器,否则只是打开了软件而已2、在ride中新建测试用例,使用OpenApplication关键字(关键字查找F5)打开手机指定APP,需要添加AppiumLibrary库3、OpenApplication需要的DesiredCapa
- SQL的各种连接查询
xieke90
UNION ALLUNION外连接内连接JOIN
一、内连接
概念:内连接就是使用比较运算符根据每个表共有的列的值匹配两个表中的行。
内连接(join 或者inner join )
SQL语法:
select * fron
- java编程思想--复用类
百合不是茶
java继承代理组合final类
复用类看着标题都不知道是什么,再加上java编程思想翻译的比价难懂,所以知道现在才看这本软件界的奇书
一:组合语法:就是将对象的引用放到新类中即可
代码:
package com.wj.reuse;
/**
*
* @author Administrator 组
- [开源与生态系统]国产CPU的生态系统
comsci
cpu
计算机要从娃娃抓起...而孩子最喜欢玩游戏....
要让国产CPU在国内市场形成自己的生态系统和产业链,国家和企业就不能够忘记游戏这个非常关键的环节....
投入一些资金和资源,人力和政策,让游
- JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
商人shang
jvm内存
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。
HotSpot虚拟机GC算法采用分代收
- 页面上调用 QQ
oloz
qq
<A href="tencent://message/?uin=707321921&Site=有事Q我&Menu=yes">
<img style="border:0px;" src=http://wpa.qq.com/pa?p=1:707321921:1></a>
- 一些问题
文强chu
问题
1.eclipse 导出 doc 出现“The Javadoc command does not exist.” javadoc command 选择 jdk/bin/javadoc.exe 2.tomcate 配置 web 项目 .....
SQL:3.mysql * 必须得放前面 否则 select&nbs
- 生活没有安全感
小桔子
生活孤独安全感
圈子好小,身边朋友没几个,交心的更是少之又少。在深圳,除了男朋友,没几个亲密的人。不知不觉男朋友成了唯一的依靠,毫不夸张的说,业余生活的全部。现在感情好,也很幸福的。但是说不准难免人心会变嘛,不发生什么大家都乐融融,发生什么很难处理。我想说如果不幸被分手(无论原因如何),生活难免变化很大,在深圳,我没交心的朋友。明
- php 基础语法
aichenglong
php 基本语法
1 .1 php变量必须以$开头
<?php
$a=” b”;
echo
?>
1 .2 php基本数据库类型 Integer float/double Boolean string
1 .3 复合数据类型 数组array和对象 object
1 .4 特殊数据类型 null 资源类型(resource) $co
- mybatis tools 配置详解
AILIKES
mybatis
MyBatis Generator中文文档
MyBatis Generator中文文档地址:
http://generator.sturgeon.mopaas.com/
该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。
本文使用Markdown进行编辑,但是博客显示效
- 继承与多态的探讨
百合不是茶
JAVA面向对象 继承 对象
继承 extends 多态
继承是面向对象最经常使用的特征之一:继承语法是通过继承发、基类的域和方法 //继承就是从现有的类中生成一个新的类,这个新类拥有现有类的所有extends是使用继承的关键字:
在A类中定义属性和方法;
class A{
//定义属性
int age;
//定义方法
public void go
- JS的undefined与null的实例
bijian1013
JavaScriptJavaScript
<form name="theform" id="theform">
</form>
<script language="javascript">
var a
alert(typeof(b)); //这里提示undefined
if(theform.datas
- TDD实践(一)
bijian1013
java敏捷TDD
一.TDD概述
TDD:测试驱动开发,它的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。
- [Maven学习笔记十]Maven Profile与资源文件过滤器
bit1129
maven
什么是Maven Profile
Maven Profile的含义是针对编译打包环境和编译打包目的配置定制,可以在不同的环境上选择相应的配置,例如DB信息,可以根据是为开发环境编译打包,还是为生产环境编译打包,动态的选择正确的DB配置信息
Profile的激活机制
1.Profile可以手工激活,比如在Intellij Idea的Maven Project视图中可以选择一个P
- 【Hive八】Hive用户自定义生成表函数(UDTF)
bit1129
hive
1. 什么是UDTF
UDTF,是User Defined Table-Generating Functions,一眼看上去,貌似是用户自定义生成表函数,这个生成表不应该理解为生成了一个HQL Table, 貌似更应该理解为生成了类似关系表的二维行数据集
2. 如何实现UDTF
继承org.apache.hadoop.hive.ql.udf.generic
- tfs restful api 加auth 2.0认计
ronin47
目前思考如何给tfs的ngx-tfs api增加安全性。有如下两点:
一是基于客户端的ip设置。这个比较容易实现。
二是基于OAuth2.0认证,这个需要lua,实现起来相对于一来说,有些难度。
现在重点介绍第二种方法实现思路。
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGe
- jdk环境变量配置
byalias
javajdk
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:
1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-7u79-windows-x64.exe
2、安装jdk-7u79-windows-x64.exe
3、配置环境变量:右击"计算机"-->&quo
- 《代码大全》表驱动法-Table Driven Approach-2
bylijinnan
java
package com.ljn.base;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.uti
- SQL 数值四舍五入 小数点后保留2位
chicony
四舍五入
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。
2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。
例如:
select cast(round(12.5,2) as numeric(5,2))  
- c++运算符重载
CrazyMizzz
C++
一、加+,减-,乘*,除/ 的运算符重载
Rational operator*(const Rational &x) const{
return Rational(x.a * this->a);
}
在这里只写乘法的,加减除的写法类似
二、<<输出,>>输入的运算符重载
&nb
- hive DDL语法汇总
daizj
hive修改列DDL修改表
hive DDL语法汇总
1、对表重命名
hive> ALTER TABLE table_name RENAME TO new_table_name;
2、修改表备注
hive> ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comm
- jbox使用说明
dcj3sjt126com
Web
参考网址:http://www.kudystudio.com/jbox/jbox-demo.html jBox v2.3 beta [
点击下载]
技术交流QQGroup:172543951 100521167
[2011-11-11] jBox v2.3 正式版
- [调整&修复] IE6下有iframe或页面有active、applet控件
- UISegmentedControl 开发笔记
dcj3sjt126com
// typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
// UISegmentedControlStylePlain, // large plain
&
- Slick生成表映射文件
ekian
scala
Scala添加SLICK进行数据库操作,需在sbt文件上添加slick-codegen包
"com.typesafe.slick" %% "slick-codegen" % slickVersion
因为我是连接SQL Server数据库,还需添加slick-extensions,jtds包
"com.typesa
- ES-TEST
gengzg
test
package com.MarkNum;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation
- 为何外键不再推荐使用
hugh.wang
mysqlDB
表的关联,是一种逻辑关系,并不需要进行物理上的“硬关联”,而且你所期望的关联,其实只是其数据上存在一定的联系而已,而这种联系实际上是在设计之初就定义好的固有逻辑。
在业务代码中实现的时候,只要按照设计之初的这种固有关联逻辑来处理数据即可,并不需要在数据库层面进行“硬关联”,因为在数据库层面通过使用外键的方式进行“硬关联”,会带来很多额外的资源消耗来进行一致性和完整性校验,即使很多时候我们并不
- 领域驱动设计
julyflame
VODAO设计模式DTOpo
概念:
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对
- 单例设计模式
hm4123660
javaSingleton单例设计模式懒汉式饿汉式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
&nb
- logback
zhb8015
loglogback
一、logback的介绍
Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-class
- 整合Kafka到Spark Streaming——代码示例和挑战
Stark_Summer
sparkstormzookeeperPARALLELISMprocessing
作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管。本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中。 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2版
- spring-master-slave-commondao
王新春
DAOspringdataSourceslavemaster
互联网的web项目,都有个特点:请求的并发量高,其中请求最耗时的db操作,又是系统优化的重中之重。
为此,往往搭建 db的 一主多从库的 数据库架构。作为web的DAO层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数