Introduction to Mobile UI Test Automation
Introduction to Mobile UI Test Automation @vchimev @SvetoslavTsenov About Us Svetoslav Tsenov Vasil Chimev F O O D Do you test your mobile apps? Usual Excuses Not enough time No appropriate not reinvent the wheel Not modify app under test Cross-platform tests Scale Appium Open source mobile testing framework Not modify app under test Use language of choice Use known APIs (webdriver) greatly Aware of issues in 10 to 30 min per app Heavily testing on pull requests Numbers > 10 real test devices > 15 build machines (10 OS X, 4 Linux, 3 Windows) > 2000 tests > 600 CI jobs > 8000 images0 码力 | 41 页 | 4.75 MB | 1 年前3Bringing Existing Code to CUDA Using constexpr and std::pmr
add_cpu(int n, float* x, float* y) { for (int i = 0; i < n; i++) y[i] = x[i] + y[i]; } TEST_CASE("cppcon-0", "[CUDA]") { int N = 1 << 20; float* x = new float[N]; float* y = new add_cpu(N, x, y); delete[] x; delete[] y; } An Even Easier Introduction to CUDA 4 |TEST_CASE("cppcon-1", "[CUDA]") { int N = 1 << 20; float* x; float* y; cudaMallocManaged(&x add_gpu(int n, float* x, float* y) { for (int i = 0; i < n; i++) y[i] = x[i] + y[i]; } TEST_CASE("cppcon-1", "[CUDA]") { // … } An Even Easier Introduction to CUDA 6 |__global__ void0 码力 | 51 页 | 3.68 MB | 5 月前3C++20: An (Almost) Complete Overview
Template Parameters [[likely]] and [[unlikely]] Calendars & Timezones std::span Feature Test Macros Immediate Functions – consteval constinit Class Enums and using Directive features Language feature test macros __has_cpp_attribute(fallthrough) __cpp_binary_literals __cpp_char8_t __cpp_coroutines … Standard Library feature test macros __cpp_lib_concepts Copyright notice Additional implementation-defined information Includes the library feature test macros, such as: __cpp_lib_any, __cpp_lib_bool_constant, __cpp_lib_filesystem, …71 Immediate 0 码力 | 85 页 | 512.18 KB | 5 月前3绕过conntrack,使用eBPF增强 IPVS优化K8s网络性能
Performance of a cluster in different time slot may differ • Due to CPU oversold • Suggestion: • Run the test against the same cluster during near time • Make CPU the bottleneck • 1 CPU handles 500,000 pps measurement Test topology Test result Service type Short connection cps Short connection P99 latency Long connection pps ClusterIP +40% -31% not available NodePort +64% -47% +22% Test result • Perf0 码力 | 24 页 | 1.90 MB | 1 年前3C++20 STL Features: 1 Year of Development on GitHub
2019 16.5, 16.6, 16.7, 16.8 Preview 3 • GitHub migration ongoing • Build system (native desktop), test suite, issue database • Goal: Complete C++20 in 2020 • No promises, but we're working hard; refers Special Math • tests/std, tests/libcxx, tests/tr1 (legacy) • llvm-project submodule for libc++'s test suite • Uses Python and lit (LLVM Integrated Tester) • Linear history, squashed commits • Feature • VMs install VS (with Clang, CMake, Ninja), Python, CUDA • We enforce clang-format for product/test code • Saves an incredible amount of time • Our parallelize tool runs it quickly, only on C++ files0 码力 | 45 页 | 702.09 KB | 5 月前3C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起
add_library 的语法与 add_executable 大致相同,除了他需要指定是动态库还是静态库: • add_library(test STATIC source1.cpp source2.cpp) # 生成静态库 libtest.a • add_library(test SHARED source1.cpp source2.cpp) # 生成动态库 libtest.so • 动态库有很多坑,特别是 但是他人提供的库,大多是作为动态库的,我们之后会讨论如何使用他人的库。 • 创建库以后,要在某个可执行文件中使用该库,只需要: • target_link_libraries(myexec PUBLIC test) # 为 myexec 链接刚刚制作的库 libtest.a • 其中 PUBLIC 的含义稍后会说明( CMake 中有很多这样的大写修饰符) 为什么 C++ 需要声明 • 在多文件编译章中,说到了需要在0 码力 | 32 页 | 11.40 MB | 1 年前3Bazel
tag=harbor.cloud.netease.com/curve/curvefs:chengyi01-debian113 修改 & 单元测试 curvefs/test/tools/curvefs_version_tool_test.cpp # 使用 clang 编译 CC=clang CXX=clang++ bazel build curvefs/...THANK YOU0 码力 | 6 页 | 4.69 MB | 5 月前3使用硬件加速Tokio - 戴翔
Tracking DLB-Assist Channel • Compatible channel interface • Compatible features Escape ? MPMC Test Scenario MPMC channel allows: • Adding new entries from any core or thread • Picking the next entry Number of Core Pairs 3 means 3 producer cores and 3 consumer cores Throughput / Relative Value MPSC Test Scenario MPSC channel allows many threads sending to one place. Conclusion: • DLB channel is more0 码力 | 17 页 | 1.66 MB | 1 年前3应用 waPC (rust) 做软件测试工具
teams • Upgrading common library issues • AT framework consumes more and more memory • One test case panics, crashes all the other AT jobs • High maintenance due to programming language 大公司 升级平台能解决不一致的问题 • Each rust file can be compiled into wasm separately • Won’t exhaust memory • A test suite panic will not implicate the others • Can be compiled from many programming language •0 码力 | 30 页 | 2.50 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 性能优化之无分支编程 Branchless Programming
// 执行完 A 必不再执行 B • .L2: • 分支 B • .L3: 编译器是如何优化 if-else 的 xor eax, eax :相当于 mov eax, 0 更高效的写法 test edi, edi :相当于 cmp edi, 0 更高效的写法 setle al :如果上一次 cmp 的结果为小于等于,则把 al 设为 1 ,否则设为 0 add eax, 1 :给 eax else ,编译器往往会自动检测到可以优化,帮你应用 “妙用加减乘”了,无法体现手动优化的意义。 • 注:此处采用函数指针不仅是为了重用代码,也可以 避免 clamp 被编译器自动内联到 test 函数体内。 • 微软编译器的同学,要把 __attribute__((noinline)) 换成 __declspec(noinline) 才能编译。 不同写法的性能测试 可以看到不论0 码力 | 47 页 | 8.45 MB | 1 年前3
共 16 条
- 1
- 2