昨天面试被问到性能数据怎么造:我答了 1.会从预发拉数据,2 通过现有的 api 造数据,3 通过存储过程和 sql 造测试数据;但是面试官好像不太满意,想问下还有什么途径?
源代码放置群 655981739,源代码放群了。最近项目多来不及搞新的地址,github 问题我也解决不了。
我其实都是一个人写的,而且我毕业才 1 年,一个人能干的事很多的,只要你愿意干,实在干不了换环境。差距都是在不经意间拉开的。
其实 jmeter 这些工具很强大,和自己写脚本最大的区别,我觉得在 jmeter 是已经写好方法了,你只要把提供数据 然后按规则串接口,自己写的更加灵活,你可以按自己的想法定义规则。Python 中的 requests 包提供的 http 也确实够简单的,而且你可以很方便的集成各式各样的库,去丰富自己的功能。
java 我也不太熟,思想是可以一起交流下的。部署方面按照一个 django 项目的部署,是会有点麻烦。
我还在开发,可以跟你讲一下开发思路:
1.将接口返回值存入 mongo
2.每个接口拥有一个权值,配置接口依赖后,对应权重会发生变化,通过权重去控制执行顺序
3.根据用户配置的上个接口的取参,去 mongo 对应接口中拿出对应的 value
4.通过 ${}的形式替换测试接口的变量
建议 linux 部署,源代码需要加群下载,github 上的代码也能用,但是我已经好几期代码没跟新了,传不上去
linux:
1.根据 testhome 安装 python3.6 和对应的 python 库
2.把源代码放到 linux 下(我创建了 pj 目录,项目放在/home/pj 下)
3.选择一个 mysql 数据库作为测试库,在 django 的 setting.py 文件的 86 行配置数据库的信息 (ip,端口,数据库名称,用户名,密码)
4.进入到项目根目录,数据库迁移:python manage.py makemigrations 在 request 应用下的 migrations 目录下创建了一个 0001_initial.py 文件,执行 python manage.py migrate,执行完成库表生成
5.创建第一个用户 python manage.py createsuperuser,之后的用户登录http://192.168.100.158:8000/admin/去创建用户组和用户以及分配权限
6.在 pj 目录下创建 logs 目录,下面创建 request.log 文件存放项目启动文件
7.在 django 的 setting.py 文件的 28 行,添加自己 linux 的 ip(我的是 ALLOWED_HOSTS = ['192.168.100.158'])
8.把启动 shell 和关闭 shell 放在根目录下(requestnew),sh start.sh,项目就启动了;项目关闭则执行 sh shutdown.sh
9.如果目录结构想要有所调整或者启动端口(默认 8000)有所调整,需要修改启动和关闭文件
10.其他机子能访问到(配置的 ip:8000)就成功了。
windows 要靠编译器启动;
1.根据 testhome 安装 python3.6 和对应的 python 库
2.选择一个 mysql 数据库作为测试库,在 django 的 setting.py 文件的 86 行配置数据库的信息 (ip,端口,数据库名称,用户名,密码)
3.进入到项目根目录,数据库迁移:python manage.py makemigrations 在 request 应用下的 migrations 目录下创建了一个 0001_initial.py 文件,执行 python manage.py migrate,执行完成库表生成
4.创建第一个用户 python manage.py createsuperuser
5.django 的 setting.py 文件的 28 行,因为是本地启动保持 ALLOWED_HOSTS = [] 就好了
6.配置编译器启动方式,选择 django server 启动,HOST 填写 127.0.0.1,port 填写 8000,运行
7.访问 127.0.0.1:8000,能访问到就 ok 了
linux 的部署文档还是 windows 的
因为它不符合 get 请求
想问个 stf 的问题,我尝试这样连接,但是后台没有显示设备,也没有 control,日志也只显示了手机设备号
我尝试这样连接,但是后台没有显示设备,也没有 control,日志也只显示了手机设备号
我尝试这样连接,但是后台没有显示设备,也没有 control,日志也只显示了手机设备号
我已经启动好了 但是如何才能把服务正常关闭呢 每次杀进程都关不完全
那个是因为我 configure 没有--prefix 指定路径,已经解决了,现在是报地址已经被使用
解决了上一个,感觉离成功很接近了,之前同事已经部署 stf 了,是用 docker 搭的,然后我杀了一堆相关进程,最后还是报这个错误,不知道为什么
2018-07-16T14:12:31.430Z INF/util:procutil 2794 [] Forking "/usr/local/node/node-v9.0.0-linux-x64/lib/node_modules/stf/lib/cli storage-temp --port 7102"
2018-07-16T14:12:31.449Z INF/util:procutil 2794 [] Forking "/usr/local/node/node-v9.0.0-linux-x64/lib/node_modules/stf/lib/cli storage-plugin-image --port 7103 --storage-url http://localhost:7100/"
2018-07-16T14:12:31.464Z INF/util:procutil 2794 [] Forking "/usr/local/node/node-v9.0.0-linux-x64/lib/node_modules/stf/lib/cli storage-plugin-apk --port 7104 --storage-url http://localhost:7100/"
2018-07-16T14:12:31.476Z INF/util:procutil 2794 [] Forking "/usr/local/node/node-v9.0.0-linux-x64/lib/node_modules/stf/lib/cli poorxy --port 7100 --app-url http://localhost:7105/ --auth-url http://localhost:7120/ --api-url http://localhost:7106/ --websocket-url http://localhost:7110/ --storage-url http://localhost:7102/ --storage-plugin-image-url http://localhost:7103/ --storage-plugin-apk-url http://localhost:7104/"
../lib/cli triproxy [name]
Options:
-h, --help Show help. [boolean]
-V, --version Show version. [boolean]
--bind-dealer, -d The address to bind the ZeroMQ DEALER endpoint to.
[string] [default: "tcp://*:7112"]
--bind-pub, -u The address to bind the ZeroMQ PUB endpoint to.
[string] [default: "tcp://*:7111"]
--bind-pull, -p The address to bind the ZeroMQ PULL endpoint to.
[string] [default: "tcp://*:7113"]
--name An easily identifiable name for log output.
[string] [default: "centos158"]
Each option can be be overwritten with an environment variable by converting the
option to uppercase, replacing dashes with underscores and prefixing it with
STF_TRIPROXY_
(e.g. STF_TRIPROXY_BIND_PUB
).
Address already in use
2018-07-16T14:12:33.108Z FTL/cli:local 2794 [] Child process had an error ExitError: Exit code "1"
at ChildProcess. (/usr/local/node/node-v9.0.0-linux-x64/lib/node_modules/stf/lib/util/procutil.js:49:23)
at emitTwo (events.js:135:13)
at ChildProcess.emit (events.js:224:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
2018-07-16T14:12:33.108Z INF/cli:local 2794 [] Shutting down all child processes
../lib/cli triproxy [name]
启动 stf 的时候报了 libzmq.so.5 找不到,也加了/usr/local/zeromq/lib 执行了 ldconfig,但是还是报这个文件找不到
[root@centos158 bin]# ./stf local --public-ip 192.168.100.158 --allow-remote
Each option can be be overwritten with an environment variable by converting the
option to uppercase, replacing dashes with underscores and prefixing it with
STF_TRIPROXY_
(e.g. STF_TRIPROXY_BIND_PUB
).
libzmq.so.5: cannot open shared object file: No such file or directory
2018-07-16T13:41:01.657Z FTL/cli:local 27572 [] Child process had an error ExitError: Exit code "1"
at ChildProcess. (/usr/local/node/node-v9.0.0-linux-x64/lib/node_modules/stf/lib/util/procutil.js:49:23)
at emitTwo (events.js:135:13)
at ChildProcess.emit (events.js:224:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
2018-07-16T13:41:01.658Z INF/cli:local 27572 [] Shutting down all child processes
../lib/cli triproxy [name]
Options:
-h, --help Show help. [boolean]
-V, --version Show version. [boolean]
--bind-dealer, -d The address to bind the ZeroMQ DEALER endpoint to.
[string] [default: "tcp://*:7112"]
--bind-pub, -u The address to bind the ZeroMQ PUB endpoint to.
[string] [default: "tcp://*:7111"]
--bind-pull, -p The address to bind the ZeroMQ PULL endpoint to.
[string] [default: "tcp://*:7113"]
--name An easily identifiable name for log output.
[string] [default: "centos158"]
Each option can be be overwritten with an environment variable by converting the
option to uppercase, replacing dashes with underscores and prefixing it with
STF_TRIPROXY_
(e.g. STF_TRIPROXY_BIND_PUB
).
libzmq.so.5: cannot open shared object file: No such file or directory
是用 nginx 和 uwsgi 部署 django,apschedule 会失效,这个我还没部署过,不太清楚呢
我传参可能会选择开发数据库查询出来的数据作为参数值,这样保证我的值是动态的;就算数据更改了,对于我的接口来说其实是没有变化的,不然数据一变,你的参数就要重新设置一次。或者我可能会去直接操作数据库,去创建一些数据,达到接口测试前置的目的,或者接口测试后对数据进行复原。
调用开发的数据库
sql 能加不
临时创了个 QQ 群 655981739,大家有兴趣的一起加群学习吧。
临时创了个 QQ 群 655981739,大家有兴趣的一起加群学习吧。
git push 是代码跟新,跟用例执行并没有关系吧
我暂时没写,部署的话 python3.6,下载对应的 python 库,以 django 的部署方式去部署启动,sql 的话 django 是 model.py 文件,python manage.py makemigrations 和 python manage.py migrate 进行数据库迁移会自己生成表结构